IBM Books

Network Utility User's Guide


Chapter 20. Virtual Private Networks Examples

In this chapter, you will find the following examples which demonstrate basic VPN solutions:


IPSec Router to Router VPN Using Pre-Shared Keys

This example uses IPSec with automatic key generation and pre-shared keys. In Figure 20-1, a secure tunnel is created from gateway to gateway. This tunnel will authenticate and encrypt traffic from specific hosts and will exclude all other traffic. The profile describes exactly which hosts at either end of the tunnel are allowed to pass data through the tunnel. The policy can allow a single host on either end, single or multiple subnets on either end, or any combination of the two. The limitation of gateway to gateway tunneling is that no authentication or encryption occurs on the LAN. This solution does not provide security on the LAN.

The network used for this example (Figure 20-1) consists of two token-ring segments connected by two IBM 2210 routers. In a real scenario, the serial link between the routers could be any private or public wide-area network (WAN).

Figure 20-1. Physical Network Used for Example Configurations



View figure.

In Figure 20-2, the tunnel must authenticate and encrypt all traffic between Subnet 9.24.106.0 (via branch router VPNRTR2 and corporate router VPNRTR1) and Subnet 192.168.141.32. No other traffic from any other subnet may traverse the link between the two routers. Authentication guarantees that a tunnel is set up between the correct endpoints, and encryption protects the data from being interpreted as it crosses the WAN.

Figure 20-2. Sample Network Used for IPSec With Pre-Shared Keys



View figure.

Create a Policy for the IPSec Tunnel for VPNRTR1

Follow these steps to configure the router:

  1. Enable IP Security

  2. Create the pre-shared key

  3. Add a policy

  4. Add a profile

  5. Add a validity period

  6. Add an IPSec action

  7. Add an IPSec proposal

  8. Add an ESP transform

  9. Add an ISAKMP action

  10. Add an ISAKMP proposal

Enable IP Security

From the Talk 6 command line interface, enable IP Security at the box level.


Table 20-1. Enable IP Security

VPNRTR1  *TALK 6
Gateway user configuration
VPNRTR1 Config>feature ipsec
IP Security feature user configuration
IPsec config>ipv4
VPNRTR1 IPV4-IPsec config>ENABLE IPSEC
It is necessary to restart the router for IPsec to be active.
VPNRTR1 IPV4-IPsec config>EXIT
VPNRTR1 IPsec config>EXIT

Create the Pre-Shared Key

A pre-shared key must be configured for every remote user. Because of this, pre-shared keys are not very scalable. However, pre-shared keys are refreshed on a regular basis, giving them an advantage over the manual tunnel method.

The Talk 6 Add User command is used to configure the keys.


Table 20-2. Add the PPP User

VPNRTR1 Config>FEATURE Policy
IP Network Policy configuration VPNRTR1 Policy config>ADD USER
Choose from the following ways to identify a user:      1
        1: IP Address
        2: Fully Qualified Domain Name
        3: User Fully Qualified Domain Name
        4: Key ID (Any string)
Enter your choice(1-4) [1]? 1
Enter the IP Address that distinguishes this user
 [0.0.0.0]? 192.168.141.17                           2
Group to include this user in []?
Authenticate user with 1:pre-shared key or 2: Public Certificate [1]? 1
Mode to enter key (1=ASCII, 2=HEX) [1]? 1
Enter the Pre-Shared Key (an even number of 2-128 ascii chars):
Enter the Pre-Shared Key again (3 characters) in ascii:       3
 
 
Here is the User Information you specified...
 
Name      = 192.168.141.17
Type      = IPV4 Addr
        Group     =
        Auth Mode =Pre-Shared Key
        Key(Ascii)=key                                   3
Is this correct? [Yes]: 

  1. The router needs to know how to recognize the remote IKE peer and the pre-shared key.

  2. In this example, the chosen identifier was the IP Address. This must be the address of the tunnel endpoint of the remote router--in this example, the IP address of the WAN interface of VPNRTR2.

  3. The key must be entered twice for validation and must be exactly the same for each router at the tunnel endpoints. In this example, the word key is used. You can use any key with up to 128 characters. However, you must enter exactly the same key twice in each router. The easiest way to do this is to type the key in a text editor and then cut and paste the key into the entry field of the Talk 6 prompts.

Add the Policy

A policy is the framework for describing how traffic entering or leaving the router is to be handled. Without access control, the router only makes routing decisions. Using the policy, the router makes decisions such as whether to pass the packet across the interface, whether the packet needs to be authenticated and whether the packet needs to be encrypted or decrypted. The policy ties other objects together. This example uses the Add Policy command first. This is probably the easiest way to create the first policy, since it prompts you to enter all the necessary information in the correct order.

If a policy creates a security tunnel, only the packets matching the profile will be encrypted and forwarded. Other packets not matching the profile are passed in the clear unless explicitly dropped by another policy. When more than one policy exists on a router, the policies are evaluated according to priority number.

Refer to Figure 20-3 to see how an incoming packet is evaluated against multiple policies. If the packet matches the profile for Policy #1, it is sent to IPSec for processing. If the packet does not match the profile for Policy #1, it is evaluated against the profile for Policy #2. This process continues until the incoming packet is evaluated against all policies. If the packet did not match any profile, it would be sent in clear text to the routing protocol for processing.

Figure 20-3. Effect of Multiple Policies



View figure.


Table 20-3. Create a New Policy

VPNRTR1 Policy config>ADD POLICY
Enter a Name (1-29 characters) for this Policy []? ike-pre-32-106
Enter the priority of this policy (This number is used to determine
the policy to enforce in the event of policy conflicts) [5]? 15              1 
List of Profiles:
        0: New Profile                  2 

  1. The priority of the policy specifies the order in which multiple policies will be evaluated. The higher numbered policies are evaluated before lower numbered policies. See Figure 20-3 for the flow of packet evaluation when multiple policies are defined.

  2. After a policy is added, you must create a profile to associate with the policy. Since no profile has been created on this router, the prompt is given to create a new profile.

Add the Profile

The profile describes the criteria used to determine if a packet should be acted on by the policy. These criteria include source and destination address, protocol, port type, and Differentiated Services (DS/TOS) byte.


Table 20-4. Add the Profile

List of Profiles:
        0: New Profile
Enter a Name (1-29 characters) for this Profile []? 32-106        1 
Source Address Format (1:NetMask, 2:Range, 3:Single Addr) [1]?        2 
Enter IPV4 Source Address [192.168.141.32]?
Enter IPV4 Source Mask [255.255.255.240]?
Destination Address Format (1:NetMask, 2:Range, 3:Single Addr) [1]?
Enter IPV4 Destination Address [9.24.106.0]?
Enter IPV4 Destination Mask [255.255.255.0]?
 
Protocol IDs:
     1)  TCP
     2)  UDP
     3)  All Protocols
     4)  Specify Range
 
Select the protocol to filter on (1-4) [3]?         3 
Enter the Starting value for the Source Port [0]?
Enter the Ending value for the Source Port [65535]?
Enter the Starting value for the Destination Port [0]?
Enter the Ending value for the Destination Port [65535]?
Enter the Mask to be applied to the Received DS-byte [0]?        4 
Enter the value to match against after the Mask has
been applied to the Received DS-byte [0]?
Configure local and remote ID's for ISAKMP? [No]: YES         5 
Enter local identification to send to remote
     1)  Local Tunnel Endpoint Address
     2)  Fully Qualified Domain Name
     3)  User Fully Qualified Domain Name
     4)  Key ID (any string)
Select the Identification type (1-4) [1]?
Any user within profile definition allowed access? [Yes]:
Limit this profile to specific interface(s)? [No]: 
 
 
...continued on next screen

  1. The descriptive name 106-32 is used here.

  2. In this example, any host on one subnet should be able to access any host on the other subnet.

  3. You may configure the profile to allow only certain protocols and certain ports if you want to limit services further. For instance, you can allow Telnet only and not FTP by allowing only TCP port 23.

  4. The DS byte is related to QoS or prioritization. You can select which traffic matches the profile by priority level.

  5. This step of configuring local and remote IDs for ISAKMP is optional unless your peer must identify you with something other than your IP address.


Table 20-5. Confirm the Profile

Here is the Profile you specified...
 
 
Profile Name    = 32->106
        sAddr:Mask= 192.168.141.32: 255.255.255.240 sPort=    0 : 65535
        dAddr:Mask= 9.24.106.0 : 255.255.255.0   dPort=    0 : 65535
        proto     =              0 : 255
        TOS       =            x00 : x00
        Remote Grp=All Users
Is this correct? [Yes]: 
List of Profiles:
        0: New Profile
        1: 32->106
 
Enter number of the profile for this policy [1]? 1

Add the Validity Period

The validity period is the time period during which the policy is valid. You may configure the validity period to specify a time duration or the months of the year, days of the week and hours of the day that the policy is valid. This flexibility enables the network administrator to specify when a policy is valid. For example, requirements could be "all the time" or "only this year during January and February" or "only Monday through Friday 9AM to 5PM." These requirements can be translated to configuration values using the Add Validity Period command.


Table 20-6. Add the Validity Period

List of Validity Periods:              1 
        0: New Validity Period
 
Enter number of the validity period for this policy [0]?
Enter a Name (1-29 characters) for this Policy Valid Profile []? always
Enter the lifetime of this policy. Please input the
information in the following format:
                yyyymmddhhmmss:yyyymmddhhmmss OR '*' denotes forever.
 [*]? *
During which months should policies containing this profile
be valid.  Please input any sequence of months by typing in
the first three letters of each month with a space in between
each entry, or type ALL to signify year round.
 [ALL]?
During which days should policies containing this profile
be valid.  Please input any sequence of days by typing in
the first three letters of each day with a space in between
each entry, or type ALL to signify all week
 [ALL]?
Enter the starting time (hh:mm:ss or * denotes all day)
 [*]?
 
 
Here is the Policy Validity Profile you specified...
 
 
Validity Name   = always                      2 
        Duration  = Forever
        Months    = ALL
        Days      = ALL
        Hours     = All Day
Is this correct? [Yes]:
List of validity periods:
      0: New Validity Period
      1: always
Enter number of the validity period for this policy [1]?

  1. Since you are creating a new policy, you are prompted to create a validity period. In some instances, you can reuse a validity period that has been previously created. You will see in later examples in this chapter that an existing validity period is used. This concept is true of all policy database objects. When appropriate, any object can be reused.

  2. The validity period in our example has been configured to be in effect at all times.

Add the IPSec Action

In addition to a profile and a validity period, a policy must also be associated with either an IPSec action, a Manual IPsec or a DiffServ Action. In this scenario, an IPSec action is configured.

An IPSec action may specify either a drop, pass or secure action. If the action is drop, then all packets matching the profile used by this policy are dropped. If the action is pass with no security, then all packets are passed in the clear. If the action is pass with security, then all packets are secured by means of the SA specified by this action. The IPSec action also contains the IP addresses of the tunnel endpoints for the IPSec tunnel and IKE SAs.


Table 20-7. Add the IPSec Action

Should this policy enforce an IPSEC action? [No]: y
IPSEC Actions:
        0: New IPSEC Action
 
Enter the Number of the IPSEC Action [0]?
Enter a Name (1-29 characters) for this IPsec Action []? tunnel_vpnrtr1-vpnrtr2
List of IPsec Security Action types:
     1)  Block (block connection)
     2)  Permit
 
Select the Security Action type (1-2) [2]?
Should the traffic flow into a secure tunnel or in the clear:
     1) Clear
     2) Secure Tunnel
 [2]?
Enter Tunnel Start Point IPV4 Address
 [192.168.141.18]?
Enter Tunnel End Point IPV4 Address (0.0.0.0 for Remote Access)
 [0.0.0.0]? 192.168.141.17
Does this IPSEC tunnel flow within another IPSEC tunnel? [No]:        1 
Percentage of SA lifesize/lifetime to use as the acceptable minimum [75]?  
Security Association Refresh Threshold, in percent (1-100) [85]?
Options for DF Bit in outer header (tunnel mode):           2 
     1)  Copy
     2)  Set
     3)  Clear
Enter choice (1-3) [1]?
Enable Replay prevention (1=enable, 2=disable) [2]?          3 
Do you want to negotiate the security association at
system initialization(Y-N)? [No]: y          4

  1. You are then asked if the negotiated IPSec tunnel flows into another tunnel. This relates to the tunnel-in-tunnel feature which was first shipped in V3.2 of the code. A scenario for tunnel-in-tunnel is shown in Figure 20-4:

    Figure 20-4. Tunnel in a Tunnel



    View figure.

    All traffic going between RTR-A and RTR-C should be authenticated, but all traffic between RTR-A and RTR-B must be encrypted. The distinction of tunnel-in-tunnel is that tunnels start at the same point but finish at different points. For this example, the answer is no.

  2. When the IPSec header is created, many of the fields of the IP header are copied from the header of the packet being secured. You can control how the don't fragment field is set. You can copy from the original packet, set the DF bit or, if it is turned on in the original packet, turn it off. Having the DF bit set has implications for IPSec. Consider the diagram below.

    Figure 20-5. Understanding the DF Bit



    View figure.

    The traffic is flowing from the device on the left to the device on the right. RTR-2 needs to fragment the packet but cannot do so because the DF bit is set. RTR-2 will generate an ICMP packet too big message and send it to the sender of the packet, RTR-1. RTR-1 then needs to inform the sender that the packet is too large. This can cause problems for RTR-1 because either (a) the ICMP packet might not contain enough of the original packet to be able to determine who the sender is or (b) the IP address might be encrypted. If RTR-1 cannot determine who the sender is, he will store tunnel information and wait for another packet to arrive for that tunnel. When that packet arrives, RTR-1 will then generate the ICMP packet too big message if necessary. So consider carefully the setting of the DF bit.

    In this example, we have set the DF bit to copy (the default).

  3. Enable replay prevention defines whether the sequence numbers should be checked on received packets.

  4. This parameter controls whether this SA should be created at system start-up. Specifying no indicates that this SA should only be negotiated when packets are received which match the policy.

Following this step we are prompted to select an IPSec proposal. Since no previous proposal exists, the only option is to create a new one.

Add an IPSec Proposal

The IPSec proposal contains the information about which ESP, AH, (or both) transform to propose or check against during phase 2 ISAKMP negotiations. Refer to IKE for an explanation of phase 2 negotiations. If you require pfs (perfect forward secrecy), then the IPSec proposal identifies which DH (Diffie-Hellman) group to use. The transforms that the IPSec proposal references are sent or checked against the order in which they are specified. The first ESP or AH transform in the list must be the one that is most appropriate to use. If more than one transform is in the list, then each one is compared to the peer's list of transforms to find a match. If none of the configured transforms match the peer's list, then the negotiation fails. The IPSec proposal may list a combination of AH and ESP transforms, but the only valid combinations are:


Table 20-8. Adding the IPSec Proposal

You must choose the proposals to be sent/checked against during phase 2
negotiations.  Proposals should be entered in order of priority.
 
List of IPSEC Proposals:         1 
        0: New Proposal
 
Enter the Number of the IPSEC Proposal [0]?
Enter a Name (1-29 characters) for this IPsec Proposal []? esp-prop1
Does this proposal require Perfect Forward Secrecy?(Y-N)? [No]:
Do you wish to enter any AH transforms for this proposal? [No]:
Do you wish to enter any ESP transforms for this proposal? [No]: y         2 

  1. Because you have specified an IPSec action, you are prompted to create a new proposal.

  2. Type y to enter an ESP transform and you will be prompted to add the transform.

Add an IPSec Transform

The attributes of the IPSec transform contain information about the IPSec encryption and authentication parameters and also specify how often the keys are refreshed. The transform is either AH (authentication only) or ESP (encryption, authentication, or both) and may be configured to operate in either tunnel or transport mode.


Table 20-9. Add the IPSec Transform

List of ESP Transforms:
        0: New Transform
 
Enter the Number of the ESP transform [0]?
Enter a Name (1-29 characters) for this IPsec Transform []? esp-trans1
List of Protocol IDs:
     1)  IPSEC AH
     2)  IPSEC ESP
 
Select the Protocol ID (1-2) [1]? 2
List of Encapsulation Modes:
     1)  Tunnel                              1 
     2)  Transport
 
Select the Encapsulation Mode(1-2) [1]?
List of IPsec Authentication Algorithms:          2 
0)  None
     1)  HMAC-MD5
     2)  HMAC_SHA
 
Select the ESP Authentication Algorithm (0-2) [2]?
List of ESP Cipher Algorithms:
     1)  ESP DES
     2)  ESP 3DES
     3)  ESP CDMF
     4)  ESP NULL
 
Select the ESP Cipher Algorithm (1-4) [1]?           3 
Security Association Lifesize, in kilobytes (1024-65535) [50000]?           4 
Security Association Lifetime, in seconds (120-65535) [3600]?
 
 
Here is the IPSec transform you specified...
 
 
Transform Name  = esp-trans1
        Type =ESP   Mode =Tunnel     LifeSize=   50000 LifeTime=    3600
        Auth =SHA   Encr =DES
Is this correct? [Yes]: y
List of ESP Transforms:
        0: New Transform
        1: esp-trans1
 
Enter the Number of the ESP transform [1]?
Do you wish to add another ESP transform to this proposal? [Yes]: n

  1. Transport mode is an SA defined between two end stations. Tunnel mode is used when at least one of the devices is a security gateway (for example, a router). We have selected tunnel mode since our SA is between two routers.

  2. These are the authentication methods. HMAC_SHA is more secure than HMAC_MD5.

  3. Select the encryption method. Note that ESP 3DES is not allowed outside the United States.

  4. Set the SA lifetime/lifesize. When the SA expires, IKE will perform another phase II calculation to refresh the keys. The default of 3600 seconds has been set. This means that someone who could intercept one of your packets would have only 1 hour to break the code. In one case, a group of university students demonstrated that single DES encryption can be broken in 22 hours.

After adding the IPSec transform, you are prompted to confirm the IPSec Proposal.


Table 20-10. Confirm the IPSec Proposal

Here is the IPSec proposal you specified...
 
 
Name  = esp-prop1
        Pfs   = N
        ESP Transforms:
                esp-trans1
Is this correct? [Yes]: y
List of IPSEC Proposals:
        0: New Proposal
        1: esp-prop1
 
Enter the Number of the IPSEC Proposal [1]?
Are there any more Proposal definitions for this IPSEC Action? [No]:

After the IPSec transform and proposal are created, we can finish the IPSec Action. We are given a confirmation screen and prompted to select the action to be associated with the policy.


Table 20-11. Confirm the IPSec Action

Here is the IPSEC Action you specified...
 
IPSECAction Name = tunnel_vpnrtr1-vpnrtr2
        Tunnel Start:End         = 192.168.141.18 : 192.168.141.17
        Tunnel In Tunnel         =             No
        Min Percent of SA Life   =             75
        Refresh Threshold        =             85 %
        Autostart                =            Yes
        DF Bit                   =           COPY
        Replay Prevention        =       Disabled
        IPSEC Proposals:
                esp-prop1
Is this correct? [Yes]:
IPSEC Actions:
        0: New IPSEC Action
        1: tunnel_vpnrtr1-vpnrtr2
 
Enter the Number of the IPSEC Action [1]?

Add ISAKMP Action

Since a secure IPSec action was specified, you are automatically prompted to create an ISAKMP action. In most cases, one ISAKMP action and one ISAKMP proposal is sufficient for all security policies. The algorithms and methods that you select will most likely be strategic, enterprise-wide parameters. For example, your company will make a decision based on corporate security requirements such as choosing between maximizing encryption levels or striking a balance between privacy and performance. As with any security design, your original configuration should be audited and monitored to insure that it is properly supporting your intentions. The ISAKMP action specifies the key management information for phase I. Refer to IKE for an explanation of the phase I and phase II negotiations.


Table 20-12. Add the ISAKMP Action

ISAKMP Actions:
        0: New ISAKMP Action
 
Enter the Number of the ISAKMP Action [0]?
Enter a Name (1-29 characters) for this ISAKMP Action []? ike-1
 
List of ISAKMP Exchange Modes:            1 
     1)  Main
     2)  Aggressive
 
Enter Exchange Mode (1-2) [1]?
Percentage of SA lifesize/lifetime to use as the acceptable minimum [75]?
ISAKMP Connection Lifesize, in kilobytes (100-65535) [5000]?        2 
ISAKMP Connection Lifetime, in seconds (120-65535) [30000]?
Do you want to negotiate the security association at
system initialization(Y-N)? [Yes]:           3 

  1. The exchange modes relate to the level of security during phase 1 negotiations. Aggressive mode is quicker since it has a fewer number of messages exchanged, but it is less secure because the identity of the initiator is sent in the clear. The action is selected to occur in main mode.

  2. Connection Lifesize and Connection Lifetime control when a new SA will be negotiated. This refreshing of keys can take several seconds, so the smaller the numbers, the more often a refresh occurs. As with many choices concerning security, a good balance is required between performance and security requirements.

  3. We selected to negotiate the SA at initialization in order to improve the performance of the initial transactions that occur across the tunnel.

Add ISAKMP Proposal

The ISAKMP proposal specifies the encryption and authentication attributes of the phase I SA. It also specifies which DH group to use to generate the keys and the life of the phase I security.


Table 20-13. Add the ISAKMP Proposal (Screen 1 of 2)

You must choose the proposals to be sent/checked against during phase 1
negotiations.  Proposals should be entered in order of priority.
List of ISAKMP Proposals:
        0: New Proposal
 
Enter the Number of the ISAKMP Proposal [0]? 0
Enter a Name (1-29 characters) for this ISAKMP Proposal []? ike-prop1
 
List of Authentication Methods:
     1)  Pre-Shared Key
     2)  RSA SIG
 
Select the authentication method (1-2) [1]? 1 
 
List of Hashing Algorithms:
     1)  MD5
     2)  SHA
 
Select the hashing algorithm(1-2) [1]? 1 
 
List of Cipher Algorithms:
     1)  DES
     2)  3DES
 
Select the Cipher Algorithm (1-2) [1]? 1
 
...continued


Table 20-14. Add the ISAKMP Proposal (Screen 2 of 2)

Security Association Lifesize, in kilobytes (100-65535) [1000]?
Security Association Lifetime, in seconds (120-65535) [15000]?
 
List of Diffie Hellman Groups:
     1)  Diffie Hellman Group 1
     2)  Diffie Hellman Group 2
 
Select the Diffie Hellman Group ID from this proposal (1-2) [1]?        1
 
 
Here is the ISAKMP Proposal you specified...
 
Name = ike-prop1
        AuthMethod = Pre-Shared Key
        LifeSize   = 1000             
        LifeTime   = 15000
        DHGroupID  = 1
        Hash Algo  = MD5
        Encr Algo  = DES CBC
Is this correct? [Yes]:
List of ISAKMP Proposals:
        0: New Proposal
        1: ike-prop1
 
Enter the Number of the ISAKMP Proposal [1]?
Are there any more Proposal definitions for this ISAKMP Action? [No]:

  1. Select 1 for pre-shared keys. If we wanted to use certificates for authentication, we would have selected RSA-SIG.

Once all of the objects necessary for a secure tunnel policy have been created, a summary of the policy is presented. The defined policy--ike-pre-32-106--has a priority of 15 and will set up a secure tunnel between the 192.168.141.32 subnet and the 9.24.106.0 subnet. The IPSec action specifies a secure tunnel which will always be in effect as specified by the valid period. The packets allowed to enter the tunnel are determined by the profile which describes the two subnets. The authentication and encryption methods are specified in the ISAKMP action and ISAKMP proposal.


Table 20-15. Confirm the ISAKMP Action

Here is the ISAKMP Action you specified...
 
 
ISAKMP Name     = ike-1
        Mode                     =            Main
        Min Percent of SA Life   =              75
        Conn LifeSize:LifeTime   =            5000 : 30000
        Autostart                =             Yes
        ISAKMP Proposals:
                ike-prop1
Is this correct? [Yes]: y 
ISAKMP Actions:
        0: New ISAKMP Action
        1: ike-1
 
Enter the Number of the ISAKMP Action [1]?

Confirm the Policy

After confirming the ISAKMP Action and Proposal, you may wish to configure a DiffServ Action. In that case, a summary of the policy is presented for confirmation.


Table 20-16. Confirm the Policy

Do you wish to Map a DiffServ Action to this Policy? [No]:
Policy Enabled/Disabled (1. Enabled, 2. Disabled) [1]?
 
Here is the Policy you specified...
 
 
Policy Name     = ike-pre-32-106
        State:Priority =Enabled    : 15
        Profile        =32-106
        Valid Period   =always
        IPSEC Action   =tunnel_vpnrtr1-vpnrtr2
        ISAKMP Action  =ike-1
Is this correct? [Yes]:   Y
 

This policy will evaluate all packets entering the router and forward those packets matching the profile to IPSec for encryption. If no further policies are created, then all packets not matching the profile will be routed in the clear to the appropriate interface.

However, for the purpose of this scenario, only traffic between the two subnets should cross the VPN. To accomplish this, a policy to drop all traffic that does not come from one of the two specified subnets will have to be created.

Create a Policy on VPNRTR1 to Drop Public Traffic

These are the steps to create the policy to drop public traffic that is not from either of the subnets specified in the IPSec tunnel policy. The steps to configure this policy are similar to the tunnel policy except there are fewer steps:

  1. Add the policy

  2. Add the profile

  3. Specify the interfaces

  4. Add the validity period

  5. Add the IP security action

  6. Confirm the policy

Add the Policy


Table 20-17. Add Policy to Drop Public Traffic

VPNRTR1 Config>FEATURE Policy
IP Network Policy configuration
VPNRTR1 Policy config>ADD POLICY
Enter a Name (1-29 characters) for this Policy []? dropAllPublicTraffic
Enter the priority of this policy (This number is used to
determine the policy to enforce in the event of policy conflicts) [5]?          1 

  1. In the policy above, a priority of 15 was assigned. The next time, a priority of 5 will be assigned. Therefore, incoming packets will be evaluated against the profile of the tunnel policy first. If they do not match that profile, they will be evaluated against this profile. The result will then be that all packets not meeting the tunnel profile will match this profile and therefore be dropped.

Add the Profile

This profile is designed to match all traffic.


Table 20-18. Add Policy to Match All Traffic

List of Profiles:
        0: New Profile
        1: 32->106
 
Enter number of the profile for this policy [1]? 0
Enter a Name (1-29 characters) for this Profile []? allPublicTraffic
Source Address Format (1:NetMask, 2:Range, 3:Single Addr) [1]?
Enter IPV4 Source Address [0.0.0.0]?
Enter IPV4 Source Mask [0.0.0.0]?
Destination Address Format (1:NetMask, 2:Range, 3:Single Addr) [1]?
Enter IPV4 Destination Address [0.0.0.0]?
Enter IPV4 Destination Mask [0.0.0.0]?
 
Protocol IDs:
     1)  TCP
     2)  UDP
     3)  All Protocols
     4)  Specify Range
 
Select the protocol to filter on (1-4) [3]?
Enter the Starting value for the Source Port [0]?
Enter the Ending value for the Source Port [65535]?
Enter the Starting value for the Destination Port [0]?
Enter the Ending value for the Destination Port [65535]?
Enter the Mask to be applied to the Received DS-byte [0]?
Enter the value to match against after the Mask has
been applied to the Received DS-byte [0]?
Configure local and remote ID's for ISAKMP? [No]: 

Specify the Interface Pairs

Since no source and destination IP Addresses were specified, which interfaces the policy applies to must be specified.


Table 20-19. Define Interfaces to Block Public Traffic

The Source and/or Destination Address information you specified
includes all addresses.  You must specify an Interface Pair
with this profile to further qualify what traffic you wish to filter
to this policy.  
Limit this profile to specific interface(s)? [No]: yes
Interface Pair Groups:
        0: New Ifc Pair
Number of Ifc Pair Group [1]? 0
Enter a Group Name (1-29 characters) for this Interface Pair []? inOutPublic
Ingress Interface IP Address (255.255.255.255 = any ingress)
 [255.255.255.255]?
Egress Interface IP Address (255.255.255.255 = any egress)
 [255.255.255.255]? 192.168.141.18
Interface Pair Groups:
        0: New Ifc Pair
        1) Group Name: inOutPublic
                  In:Out=255.255.255.255 : 192.168.141.18


Table 20-20. Verify Specified Interfaces

Number of Ifc Pair Group [1]? 0
Enter a Group Name (1-29 characters)for this Interface Pair []?inOutPublic
Ingress Interface IP Address (255.255.255.255 = any ingress)
 [255.255.255.255]? 192.168.141.18
Egress Interface IP Address (255.255.255.255 = any egress)
 [255.255.255.255]?
Interface Pair Groups:
        0: New Ifc Pair
        1) Group Name: inOutPublic
                  In:Out=255.255.255.255 : 192.168.141.18
                  In:Out= 192.168.141.18 : 255.255.255.255
 
Number of Ifc Pair Group [1]? 1
 
 
Here is the Profile you specified...
 
 
Profile Name    = allPublicTraffic
        sAddr:Mask=        0.0.0.0 : 0.0.0.0   sPort=    0 : 65535        1
        dAddr:Mask=        0.0.0.0 : 0.0.0.0   dPort=    0 : 65535        2
        proto     =              0 : 255
        TOS       =            x00 : x00              3 
        Remote Grp=All Users
        1.  In:Out=255.255.255.255 : 192.168.141.18
        2.  In:Out= 192.168.141.18 : 255.255.255.255
Is this correct? [Yes]: 

  1. All zeros indicates that traffic from any source matches the profile.

  2. All zeros indicates that traffic with any destination matches the profile.

  3. Leaving the default TOS at x00 indicates traffic at any priority level will match the profile.

Add the Validity Period

Once the interfaces are specified, the profile and the validity period must be selected. A new validity period does not need to be created since the previous configured always description can be used.


Table 20-21. Reuse the ALWAYS Validity Period

List of Profiles:
        0: New Profile
        1: 32->106
        2: allPublicTraffic
 
Enter number of the profile for this policy [1]? 2
List of Validity Periods:
        0: New Validity Period
        1: always
 
Enter number of the validity period for this policy [1]? 1

Add the IPSec Action

Describe a security action to drop all traffic that matches the allPublicTraffic profile. The fact that this policy is set at a lower priority than the tunnel policy will cause the correct traffic to enter the tunnel and all other traffic to be dropped. In other words, each incoming packet is tested against the tunnel profile first and against the public profile last.


Table 20-22. Add the IPSec Action to Drop Public Traffic

Should this policy enforce an IPSEC action? [No]: yes
IPSEC Actions:
        0: New IPSEC Action
        1: tun-32->106
 
Enter the Number of the IPSEC Action [1]? 0
Enter a Name (1-29 characters) for this IPsec Action []? dropTraffic
List of IPsec Security Action types:
     1)  Block (block connection)
     2)  Permit
 
Select the Security Action type (1-2) [2]? 1
 
 
Here is the IPSec Action you specified...
 
 
IPSECAction Name = dropTraffic
        Action   = Drop
Is this correct? [Yes]: yes
IPSEC Actions:
        0: New IPSEC Action
        1: tun-32->106
        2: dropTraffic
 
Enter the Number of the IPSEC Action [1]? 2
Do you wish to Map a DiffServ Action to this Policy? [No]:
Policy Enabled/Disabled (1. Enabled, 2. Disabled) [1]? 1

Confirm the Policy is Correct

Confirm the policy by entering Yes.


Table 20-23. Confirm the Policy to Drop Traffic

Here is the Policy you specified...
 
 
Policy Name     = dropAllPublicTraffic
        State:Priority =Enabled    : 1
        Profile        =allPublicTraffic
        Valid Period   =always
        IPSEC Action   =dropTraffic
Is this correct? [Yes]:   Y 

This completes the configuration on VPNRTR1. Be sure to make a copy of the configuration in IBD, the configuration program, or send to a TFTP server.

Create a Policy for the IPSec Tunnel for VPNRTR2

Refer to Figure 20-2 for the network diagram and IP addresses for this example. These are the steps to configure the router:

  1. Enable IP security

  2. Create the pre-shared key

  3. Add a policy

  4. Add a profile

  5. Add a validity period

  6. Add an IPSec action

  7. Add an IPSec proposal

  8. Add an ESP transform

The steps for creating the VPNRTR2 policy are the same as those for VPNRTR1 with the following differences:

Note:Make sure that the pre-shared key is identical in both routers. An easy way to do this is to cut and paste the keys. Also, be aware that if the key entered is longer than the character width of the Telnet session screen, you may not see the entire key when the confirmation screen is presented.

Table 20-24 shows the output of the Talk 6 list all command after completing the configuration of VPNRTR2. The values that are different from the VPNRTR1 policy are annotated below each figure.


Table 20-24. List All of the Policy Database Objects for VPNRTR2

VPNRTR2 Policy config>LIST ALL
 
Configured Policies....
 
Policy Name     = ike-pre-106->32              1  
        State:Priority =Enabled    : 15
        Profile        =106->32                2 
        Valid Period   =always
        IPSEC Action   =ike-1
        ISAKMP Action  =ike-1
 
Policy Name     = dropAllPublicTraffic
        State:Priority =Enabled    : 5
        Profile        =allPublicTraffic
        Valid Period   =always
        IPSEC Action   =dropTraffic
 
Configured Profiles....
 
Profile Name    = 106->32      3
        sAddr:Mask=     9.24.106.0 : 255.255.255.0   sPort=     0 : 65535     
        dAddr:Mask= 192.168.141.32 : 255.255.255.240 dPort=    0 : 65535
        proto     =              0 : 255
        TOS       =            x00 : x00

  1. The name of the policy is only for reference. Please use a meaningful name.

  2. Use a meaningful name for the profile.

  3. The profile addresses are the reverse of the router at the opposite tunnel endpoint.


Table 20-25. List Policy Database Objects for VPNRTR2 (Screen 1 of 4)

Remote Grp=All Users
 
Profile Name    = allPublicTraffic
        sAddr:Mask=        0.0.0.0 : 0.0.0.0         sPort=    0 : 65535
        dAddr:Mask=        0.0.0.0 : 0.0.0.0         dPort=    0 : 65535
        proto     =              0 : 255
        TOS       =            x00 : x00
        Remote Grp=All Users
        1.  In:Out=255.255.255.255 : 192.168.141.17       1
        2.  In:Out= 192.168.141.17 : 255.255.255.255
 
Configured Validity Periods
 
Validity Name   = always
        Duration  = Forever
        Months    = ALL
        Days      = ALL
        Hours     = All Day
 
Configured DiffServ Actions....
No DiffServ Actions configured

  1. The address of the WAN port.


Table 20-26. List Policy Database Objects for VPNRTR2 (Screen 2 of 4)

Configured IPSEC Actions....
 
IPSECAction Name = ike-1
        Tunnel Start:End         = 192.168.141.17 : 192.168.141.18            1 
        Tunnel In Tunnel         =             No
        Min Percent of SA Life   =             75
        Refresh Threshold        =             85 %
        Autostart                =             No
        DF Bit                   =           COPY
        Replay Prevention        =       Disabled
        IPSEC Proposals:
                esp-prop1
 
IPSECAction Name = dropTraffic
        Action   = Drop
 
Configured IPSEC Proposals....
 
Name  = esp-prop1
        Pfs   = N
        ESP Transforms:
                esp-trans1

  1. Remember, for the IPSec action of this router, the tunnel start and end points must be exactly reversed from the router at the opposite end point.


Table 20-27. List Policy Database Objects for VPNRTR2 (Screen 3 of 4)

Configured IPSEC Transforms....
 
Transform Name  = esp-trans1
        Type =ESP   Mode =Tunnel     LifeSize=   50000 LifeTime=    3600
        Auth =SHA   Encr =DES
 
Configured ISAKMP Actions....
 
ISAKMP Name     = ike-1
        Mode                     =            Main
        Min Percent of SA Life   =              75
        Conn LifeSize:LifeTime   =            5000 : 30000
        Autostart                =             Yes
        ISAKMP Proposals:
                ike-prop1


Table 20-28. List Policy Database Objects for VPNRTR2 (Screen 4 of 4)

Configured ISAKMP Proposals....
Name = ike-prop1
        AuthMethod = Pre-Shared Key
        LifeSize   = 1000
        LifeTime   = 15000
        DHGroupID  = 1
        Hash Algo  = MD5
        Encr Algo  = DES CBC
 
Configured Policy Users....
Name      = 192.168.141.18         1 
Type      = IPV4 Addr
        Group     =
        Auth Mode =Pre-Shared Key
        Key(Ascii)=key
Configured Manual IPSEC Tunnels....
 
                             IPv4 Tunnels
------------------------------------------------------------------------------
 
   ID         Name        Local IPv4 Addr  Rem IPv4 Addr    Mode    State
 ------  ---------------  ---------------  ---------------  -----  --------
VPNRTR2 Policy config> 

  1. The configured policy user for VPNRTR2 will be the IP Address of VPNRTR1.

Create a Policy on VPNRTR2 to Drop Public Traffic

These are the steps to create the policy to drop public traffic that is not from either of the subnets specified in the IPSec tunnel policy.

Note:For exact, step-by-step instructions, refer to Create a Policy on VPNRTR1 to Drop Public Traffic. The only difference is in the Specify the Interfaces step where the interface address will be the IP Address of the WAN port for VPNRTR2.

  1. Add the policy

  2. Add the profile

  3. Specify the interfaces

  4. Add the validity period

  5. Add the IP security action

  6. Confirm the policy

Monitoring/Troubleshooting the Policies

The policy database takes the policy and generates the rules which are needed for IPSec. The policy has defined that traffic going from x.x.x.x to x.x.x.x need to be secured using tunnel tunnelname. In the past, packet filters would also need to be configured to confirm that traffic from x.x.x.x to x.x.x.x had been secured by tunnel tunnelname. The policy feature creates this filter for you. If you want to know what policies have been generated, go into the policy feature from talk 5 and enter list policy generated. The router will list all the policies that you have defined. Select the appropriate number, and the router will tell you what rules were generated for that policy.


Table 20-29. List the Policy Generated

VPNRTR2 *TALK 6
VPNRTR2 Config>FEATURE Policy
IP Network Policy configuration
VPNRTR2 Policy console>LIST POLICY GENERATED
1: (Enabled,Valid)      dropAllPublicTraffic
2: (Enabled,Valid)      ike-pki-106-32
Number of Policy to display [0]? 2
Rules generated for policy ike-pki-106-32:
Rule 1.  ike-pki-106-32.p1in
Rule 2.  ike-pki-106-32.p1out
Rule 3.  ike-pki-106-32.p2in
Rule 4.  ike-pki-106-32.traffic
Rule 5.  ike-pki-106-32.inBoundTunnel                               

If you want to know what these rules are, there are two commands: one gives you a summary and one gives you the details. List rule basic gives you the basic information about a rule--the priority, how it was generated and how it has been used.


Table 20-30. List Rule Basic

VPNRTR2 Policy console>LIST RULE BASIC
1: (Enabled,Valid)      ike-pki-106-32.p2in
2: (Enabled,Valid)      ike-pki-106-32.p1out
3: (Enabled,Valid)      ike-pki-106-32.p1in
4: (Enabled,Valid)      ike-pki-106-32.traffic
5: (Enabled,Valid)      ike-pki-106-32.inBoundTunnel
11: (Enabled,Valid)     dropAllPublicTraffic
Number of Rule to display (0 for All) [0]? 1
Policy Name: ike-pki-106-32.p2in
Loaded from: Local
State:       Enabled and Valid
Priority:    94
Hits:        0
Profile:     106->32.p2in
Validity:    always
IPSEC:       ike-1    

List rule complete shows you the details of the rule. This rule is used to confirm that traffic from 192.168.141.18 to 192.168.141.17 was secured using the correct tunnel definition.


Table 20-31. List Rule Complete

VPNRTR2 Policy console>LIST RULE COMPLETE
1: (Enabled,Valid)      ike-pki-106-32.p2in
2: (Enabled,Valid)      ike-pki-106-32.p1out
3: (Enabled,Valid)      ike-pki-106-32.p1in
4: (Enabled,Valid)      ike-pki-106-32.traffic
5: (Enabled,Valid)      ike-pki-106-32.inBoundTunnel
11: (Enabled,Valid)     dropAllPublicTraffic
Number of Rule to display (0 for All) [0]? 1
Policy name:                           ike-pki-106-32.p2in
Policy Loaded from:                    Local Configuration
Policy state:                          Enabled and Valid
Policy Priority:                       94
 
Profile Name    = 106->32.p2in
        sAddr:End = 192.168.141.18 : 192.168.141.18  sPort=  500 : 500
        dAddr:End = 192.168.141.17 : 192.168.141.17  dPort=  500 : 500
        proto     =             17 : 17
        TOS       =            x00 : x00
        Remote Grp=All Users
 
Validity Name   = always
        Duration  = Forever
        Months    = ALL
        Days      = ALL
        Hours     = All Day
 
IPSECAction Name = ike-1
        Tunnel Start:End         = 192.168.141.17 : 192.168.141.18
        Tunnel In Tunnel         =             No
        Min Percent of SA Life   =             75
        Refresh Threshold        =             85 %
        Autostart                =             No
        DF Bit                   =           COPY
        Replay Prevention        =       Disabled
        IPSEC Proposals:
        ----------------
        1:Name = esp-prop1
                Pfs  = N
                ESP Transforms:
                --------------
                1:Name = esp-trans1
                        Mode     = Tunnel
                        LifeSize = 50000
                        LifeTime = 3600
                        Authent  = SHA          Encr =DES
VPNRTR2 Policy console>

Other useful commands:


Router to Router VPN Using Digital Certificates

If you are going to perform authentication using digital certificates you will need to have a certificate authority (CA). This is typically a software package running on a PC or UNIX platform. Note that in this release only one CA is supported, so all of your certificates for the entire network have to be issued by the same instance of the software package. Many companies sell CA software--for example, Entrust Technologies, Inc. and VeriSign.

To obtain a certificate, the router must have a private and public key. These are generated when the certificate request is issued from talk 5. Once the keys are generated, the router forms a certificate-request packet. This contains the router's public key and an identifier. The request is then sent to a TFTP server running somewhere in the network. The certificate-request must then be passed to CA and be read and processed by the CA. The CA will issue a certificate. The certificate contains the router's public key, the identifier sent by the router and a validity period. The certificate is signed by the CA's private key.

The router must then retrieve this certificate, either via TFTP or via LDAP. When the router downloads the certificate, the private key that is the partner to the public key in the certificate must still be in the router's running memory. The downloaded certificate is useless if the router has lost its matching private key. This means that from the time you issue the certificate request to the time the certificate downloads, you must not restart or reload the router, clear the cache, or issue a new certificate request. Any of these operations destroy the private key. The keys and certificate should be saved as soon as the certificate has been retrieved.

The router also needs to have a copy of the CA's certificate. When the router verifies a peer's certificate, it must confirm that the peer's certificate was signed by the CA's private key. To be able to do this, it must have the CA's certificate which contains the CA's public key. Each router performing IKE must download the CA's certificate using either TFTP or LDAP. This certificate must also be saved.

This example explains how to configure IBM routers for IP security with automatic key negotiations using digital signatures to provide authentication. The tunnel is from router to router. This tunnel will authenticate and encrypt traffic from specific hosts and will exclude all other traffic. The profile describes exactly which hosts at either end of the tunnel are allowed to pass data through the tunnel. The policy can allow a single host on either end, single or multiple subnets on either end, or any combination of the two. The limitation of router to router tunneling is that no authentication or encryption occurs on the LAN. This solution does not provide security on the LAN.

Refer to Figure 20-1 for the physical network connectivity. Refer to Figure 20-2 for the logical network diagram and IP Addressing. Documentation and screen captures will be given for only the parameters that are different from the example in IPSec Router to Router VPN Using Pre-Shared Keys.

Note:A user does not need to be defined in this case. The authentication will be provided by the digital certificate.

Create a Policy for the IPSec Tunnel for VPNRTR1

The steps for this example will be very similar to those described in Create a Policy for the IPSec Tunnel for VPNRTR1. To create this configuration, begin with the step titled Enable IPSecurity and continue the steps exactly until the end of the step titled Add ISAKMP Action. The next step, Add ISAKMP Proposal, will be different.

Except as noted in the following steps, these steps are the same as for the pre-shared keys example given in Create a Policy for the IPSec Tunnel for VPNRTR1. When using this method, do not use the Add User command to create a user and the keys. When creating the profile, you can configure it the same as the previous example, but be sure to consider the note.

  1. Enable IP security

  2. Add a policy

  3. Add a profile
    Note:When adding the profile, you are prompted to configure IDs for ISAKMP. You must do this so that the other peer can identify you. The method chosen here must match the subject-alt-name type and information entered in the CERT-REQ command shown in Table 20-34. The information must also match what is sent to the Certificate Authority as shown in Figure 20-7.

  4. Add a validity period

  5. Add an IPSec action

  6. Add an IPSec proposal

  7. Add an ESP transform

  8. Add an ISAKMP action

The following steps will be different than those in the pre-shared keys example. You will begin by adding a new ISAKMP Proposal to specify the authentication method RSA SIG. RSA SIG is a term for digital certificates. Next, you will request and load a router certificate and a CA certificate.

  1. Add an ISAKMP proposal

  2. Configure TFTP server for loading certificates

  3. Request a router certificate

  4. Load router certificate

  5. Save the router certificate

  6. Obtain a CA certificate

  7. Load the CA certificate

  8. Save the CA certificate

Add an ISAKMP Proposal

The ISAKMP proposal specifies the encryption and authentication attributes of the phase I SA. It also specifies which Diffie-Hellman group to use to generate the keys and the life of the phase I security.


Table 20-32. Add the ISAKMP Proposal for Digital Certificates

VPNRTR1 Policy config>ADD ISAKMP-PROPOSAL
Enter a Name (1-29 characters) for this ISAKMP Proposal []? cert1      1  
 
List of Authentication Methods:         2   
     1)  Pre-Shared Key
     2)  RSA SIG
 
Select the authentication method (1-2) [1]? 2
 
List of Hashing Algorithms:
     1)  MD5
     2)  SHA
 
Select the hashing algorithm(1-2) [1]?
 
List of Cipher Algorithms:
     1)  DES
     2)  3DES
 
Select the Cipher Algorithm (1-2) [1]?
Security Association Lifesize, in kilobytes (100-65535) [1000]?
Security Association Lifetime, in seconds (120-65535) [15000]?
 
List of Diffie Hellman Groups:
     1)  Diffie Hellman Group 1
     2)  Diffie Hellman Group 2
 
Select the Diffie Hellman Group ID from this proposal (1-2) [1]?
 
 
Here is the ISAKMP Proposal you specified...
 
Name = cert1
        AuthMethod = RSA SIG
        LifeSize   = 1000
        LifeTime   = 15000
        DHGroupID  = 1
        Hash Algo  = MD5
        Encr Algo  = DES CBC
Is this correct? [Yes]: 

  1. The ISAKMP proposal will be given a name.

  2. Specify to use digital certificates.

Configure TFTP Server for Loading Certificates

The Load Certificate command requires that a TFTP server be pre-defined. Use the Add Server command to assign a name and IP address. It is a good idea to check connectivity between the router and the TFTP sever before attempting the load certificate operation.


Table 20-33. Add the TFTP Server Description for Loading Certificates

VPNRTR1 Config>FEATURE IPSec
IP Security feature user configuration
VPNRTR1 IPsec config>PKI
VPNRTR1 PKI config>ADD SERVER
Name ? (max 65 chars) []? TFTPServer
Enter server IP Address []? 9.24.106.146
Transport type (Choices: TFTP/LDAP)  [TFTP]?
VPNRTR1 PKI config>EXIT 

Request a Router Certificate

Before requesting a certificate, it is important to make sure the clock of the router to which you will load the certificate is close to but no later than the clock of the CA system. Refer to Chapter 19, "Virtual Private Networks" for an explanation of Certificate Authorities. When a CA issues a certificate, it will be time-stamped with a valid period expressed as beginning and ending time and date. The time of the router must be after the start time of the certificate and before the end time. If the certificate is being issued by a host not under your control, then the only way you can learn the time stamp of the certificate is to request it a try to load it to the router. If the time for the router is outside of the validity period, the following message will be displayed in the ELS log.

PKI.009 Validity check: failed Current date 1999/3/5, Time 9:38.21. 
Cert valid date: 1999/3/5 10:14:38 -- 1999/6/5 10:14:38 

This message informs you that the router time is earlier than the valid certificate time. If this occurs, check the router time using the T 6 command time list to display the time and the command time set to adjust the time.

The CERT-REQ command is used to create a certificate request which will be sent to the CA.


Table 20-34. Request the Certificate

VPNRTR1  *TALK 5
VPNRTR1 +FEATURE IPSec
VPNRTR1 IPSP>PKI
VPNRTR1 PKI Console>CERT-REQ
Enter the following part for the subject name
   Country Name(Max 16 characters) []? us
   Organization Name(Max 32 characters) []? cert
   Organization Unit Name(Max 32 characters) []?
   Common Name(Max 32 characters) []? VPNRTR1        1    
Key modulus size (512|768|1024)
 [512]?
Certificate subject-alt-name type:     2  
   1--IPv4 Address
   2--User FQDN
   3--FQDN
Select choice [1]?
Enter an IPv4 addr) []? 192.168.141.18       3   
Generating a key pair. This may take some time. Please wait ...
Cert Request format: 1--DER;2--PEM      4    
 [1]? 2
PKCS10 message successfully generated
Enter tftp server IP Address []? 9.24.106.146
Remote file name (max 63 chars) [/tmp/tftp_pkcs10_file]? test.req
Memory transfer starting.
.Memory transfer completed - successfully.
Certificate request TFTP to remote host sucessfully.     5  
Generated private key stored into cache
Please download router certificate and save
both router certificate and its private key ASAP.
VPNRTR1 PKI Console>  

  1. This name should match the actual configured router system name.

  2. The type must match the ID type specified in the profile.

  3. This must be the local tunnel endpoint address. The IP address of the serial interface is directly on the Internet.

  4. The certificate request format must match the format that the CA uses to create the certificate. DER is digital format and PEM is ASCII format.

  5. The certificate request is now on the TFTP server as test.req.

Obtaining the Certificates from the CA

The certificate request should be sent to the CA server which will verify the request and issue a certificate. The certificate contains the router public key and the information that you entered. The CA signs the certificate with a private key and it becomes trusted digital information.

Open the test.req document in Word Pad as shown in Figure 20-6.

Figure 20-6. Certificate Request Created by the Router



View figure.

For this example, Entrust Technologies was used although you could use any Certificate Authority. The steps to obtain the certificate may be different than the steps listed here.

Remember that when doing a cut and paste, only cut and paste the header and footer and characters in between. The header should begin with dashes and the footer should end with dashes.

On the company's Web Site, select Request a VPN Certificate. Fill out the disclaimer form and click PROCEED. On the next form, scroll down to the input area as shown in Table 20-34, and fill in the common name (which in this example is VPNRTR1). Uncheck the box labeled Encode certificate in PKCS7 certificates only message. Enter the alternative name which should match reference 2 in Table 20-34 for which we entered 192.168.141.18. Delete the pre-entered text in the cut and paste area. Using Word Pad, open the test.req file and cut and paste the certificate request into the window provided on the Web page. The certificate is pasted with no carriage returns.

Figure 20-7. Fill Out the Certificate Request Form



View figure.

A certificate will be returned in the Web browser as shown in Figure 20-8.

Figure 20-8. The Router Certificate is Returned to the Browser



View figure.

Cut and paste the certificate into a new text document in Word Pad. Delete spaces at the end of the first, next to last, and last line. Save the certificate in the TFTP Server Upload Directory. For this example, the certificate file was named, cert.txt.

Load Router Certificate

The certificate should now be retrieved via LDAP or TFTP. The following scenario uses TFTP to retrieve the certificate. As shown in Table 20-35, use the Load Certificate command to retrieve the router's certificate. Take the default option for the type of certificate since you are retrieving the router's certificate. You are then asked if the certificate is in digital format (option 1) or ASCII format (option 2). Select option 2. Next you are asked for the server name. This is the name of the TFTP server which you added from talk 6. Lastly, you will be asked for the name of the file on the server. The router then retrieves the certificate and stores it in its runtime memory.


Table 20-35. Load the Router Certificate

VPNRTR1 PKI Console>LOAD CERTIFICATE
Enter the type of the certificate:
Choices:  1-Root CA Cert, 2-Router Cert
Enter (1-2): [2]?
Encoding format:
Choices: 1-DER 2-PEM
Enter (1-2): [1]? 2
Server info name []? TFTPServer
Remote file name on tftp server (max 63 chars) [/tmp/default_file]? cert.txt
 
Attempting to load certificate file. Please wait ...
Memory transfer starting.
.Memory transfer completed - succesfully.
Router Certificate  loaded into run-time cache
VPNRTR1 PKI Console>

Save the Router Certificate

Immediately save the certificate and associated keys. You will have to repeat the certificate process if you fail to save the certificate and the router restarts. You will be asked which certificate you are saving, what name you wish to call it and if you wish this certificate to be loaded into the router's memory when the router is started.


Table 20-36. Save the Router Certificate

VPNRTR1 PKI Console>CERT-SAVE
Enter type of certificate to be stored into SRAM:
     1)Root certificate;
     2)Box  certificate with private key;
Select the certificate type (1-2) [2]?
SRAM Name for certificate and private key []? r1cert.txt
Load as default router certificate at initialization? [No]: y
Both Router Certificate and private key saved into SRAM successfully
VPNRTR1 PKI Console>

Obtain a CA Certificate

The router now has its private and public keys, which were generated just before the certificate request was issued. You have just retrieved the router's certificate. Now you need the CA's certificate so you can verify the validity of an IKE peer's certificate. One part of confirming the validity is to check that the CA signed the peer's certificate, therefore the CA's certificate is needed. The peer's certificate must be signed by the same CA because there is no mechanism in place to check a certificate issued by another CA.

Next, Retrieve PEM Encoded Certificate was selected on the Entrust Web site. As shown in Figure 20-9, a CA certificate was returned to the browser. For this particular test, no header or footer was sent with the CA certificate.

Figure 20-9. The CA Certificate is Returned to the Web Browser



View figure.

For this example, the text following "CA Certificate" was pasted into a new Word Pad text document. No header or footer was sent with the CA certificate. (This may vary depending on how you get the CA certificate.) In order for the router in this example to accept the certificate, the header and footer from the router certificate that was already received had to be pasted into the document and the CA certificate text was pasted in between the header and footer text as shown in Figure 20-10.

Figure 20-10. Add the Header and Footer to the CA Certificate



View figure.

Save the certificate as a document in the TFTP server upload directory. For this example, the file was named cert.txt.

Load the CA Certificate

The CA's certificate can also be loaded via TFTP using the Load Certificate command and selecting option 1 as the type of certificate.


Table 20-37. Load the Root Certificate to Cache

VPNRTR1 PKI Console>LOAD CERTIFICATE
Enter the type of the certificate:
Choices:  1-Root CA Cert, 2-Router Cert
Enter (1-2): [2]? 1
Encoding format:
Choices: 1-DER 2-PEM
Enter (1-2): [1]? 2
Server info name []? TFTPServer
Remote file name on tftp server (max 63 chars) [/tmp/default_file]? cacert.txt
 
Attempting to load certificate file. Please wait ...
Memory transfer starting.
.Memory transfer completed - successfully.
Root CA Certificate  loaded into run-time cache
VPNRTR1 PKI Console> 

Save the CA Certificate


Table 20-38. Save the Root Certificate to the Router Configuration

VPNRTR1 PKI Console>CERT-SAVE
Enter type of certificate to be stored into SRAM:
     1)Root certificate;
     2)Box  certificate with private key;
Select the certificate type (1-2) [2]? 1
SRAM Name to store Root Certificate? []? cacert
Load as default root certificate at initialization? [No]: y
Root Certificate saved into SRAM successfully.
VPNRTR1 PKI Console>

Once you have saved the CA certificate, you have completed configuration of the VPNRTR1 tunnel policy.

Create a Policy on VPNRTR1 to Drop Public Traffic

The steps to configure this policy are exactly the same as the step in the example shown in Create a Policy on VPNRTR1 to Drop Public Traffic:

  1. Add the policy

  2. Add the profile

  3. Specify the interfaces

  4. Add the validity period

  5. Add the IP security action

  6. Confirm the policy

This completes the configuration of VPNRTR1. Save copies of the configuration because you will not want to take the time to do this again.

Create a Policy for the IPSec Tunnel for VPNRTR2

To create the IP Security tunnel, follow these steps:

  1. Enable IP security

  2. Add a policy

  3. Add a profile

  4. Add a validity period

  5. Add an IPSec action

  6. Add an IPSec proposal

  7. Add an ESP transform

  8. Add an ISAKMP action

  9. Add an ISAKMP proposal

  10. Configure TFTP server for loading certificates

  11. Request a router certificate

  12. Load router certificate

  13. Save the router certificate

  14. Obtain a CA certificate

  15. Load the CA certificate

  16. Save the CA certificate

The steps above are the same as the steps shown in Create a Policy for the IPSec Tunnel for VPNRTR1 with the following differences:

Create a Policy on VPNRTR2 to drop public traffic

The steps for creating this policy are the same as the steps in Create a Policy on VPNRTR2 to Drop Public Traffic.

Monitoring/Troubleshooting from Talk 5

Monitoring operations and statistics for this example are the same as for the pre-shared keys example. Refer to Monitoring/Troubleshooting the Policies.


Voluntary PPTP Tunnel with IBM Router Termination

Refer to Point-to-Point Tunneling Protocol for additional information about PPTP.

IBM routers support PPTP in order to provide interoperability with Microsoft Windows devices which support only PPTP. Microsoft has announced intentions to implement L2TP on NT 5.0.

Figure 20-11 is an example of a remote access VPN using PPTP voluntary tunneling. The IBM router will be configured as the endpoint of a PPTP tunnel. The client, a Windows/98, Windows/95 or Windows NT Dial-Up Networking (DUN) client will dial into the ISP router. The client will establish a PPP connection and be given an IP address on the 9.24.104.0 subnet. At this point, the client has IP connectivity to anywhere in the Internet IP cloud including the WAN interface of the corporate Internet router. The client will then establish a tunnel to 192.168.141.18, which is the IP address of the corporate Internet router. The userid and password for the PPTP tunnel is sg245281 and the IP address is 192.168.141.38. These are assigned by the corporate router. Once the tunnel is established, connectivity is the same as you would have if you dialed directly into a Remote Access Server on the corporate LAN.

Figure 20-11. Workstation to Gateway PPTP Tunnel



View figure.

Configuration of the Network Utility

Before completing the following steps, make sure the Network Utility has the proper interfaces configured. Also configure IP so that the PPP interface has either a static or dynamic route to the Internet. The Intranet interface should not be advertised on the Internet. Refer to Figure 20-12 for the IP addressing of the network that was used for this example.

Figure 20-12. IP Addressing Scheme



View figure.

To configure the corporate Internet router as illustrated in Figure 20-11, follow these steps:

Enable PPTP


Table 20-39. Enable PPTP

VPNRTR1  *TALK 6
VPNRTR2 Config>FEATURE Layer-2-Tunneling
VPNRTR2 Layer-2-Tunneling Config>ENABLE PPTP
 
 Restart system for changes to take effect.              

Add Layer 2 Nets

Add the number of Layer 2 Nets needed to support the maximum number of simultaneous connections. In this example, 3 nets are added. You do not need to enable IPX or transparent bridging.


Table 20-40. Add a Layer-2 Net

VPNRTR1 *TALK 6
VPNRTR2 Config>FEATURE Layer-2-Tunneling
VPNRTR2 Layer-2-Tunneling Config>ADD L2-NETS
Additional L2 nets:  [0]? 3       1
Add unnumbered IP addresses for each L2 net? [Yes]:
Adding device as interface 6
Defaulting Data-link protocol to PPP
Adding device as interface 7
Defaulting Data-link protocol to PPP
Adding device as interface 8
Defaulting Data-link protocol to PPP
Enable IPX on L2T interfaces?(Yes or [No]):
Enable transparent bridging on L2T interfaces?(Yes or [No]):
Bridge configuration was not changed.
 
Restart router for changes to take affect.
VPNRTR2 Layer-2-Tunneling Config>   

  1. Add the number of nets to equal the planned maximum number of simultaneously attached PPTP clients.

Enable mschap and mppe

Microsoft Windows Dial-UP Networking (DUN) PPTP clients use MPPE to perform encryption. This protocol needs to be enabled on the L2Net. L2Nets configured as inbound from anyone (the default) take their PPP defaults from a template in the layer feature. The encapsulator command takes you to a prompt from where all the PPP defaults can be tuned.

To use MPPE, you must enable MS-CHAP. When you enable MPPE, you will be asked if MPPE is operating in mandatory or optional mode. If it is operating in mandatory mode, you must negotiate MPPE. Mandatory mode forces the router to renegotiate MPPE each time a new connection is requested, even when the sender has previously established MPPE between itself and the router. If MPPE is operating in optional mode, you are not obligated to negotiate MPPE. Optional mode results in the router maintaining MPPE between itself and the sender after the initial negotiation and does not renegotiate MPPE for each new connection. You will then be asked if the keys are stateful or stateless. If the keys are stateless, the key changes every time a packet is sent, whereas with stateful the key is only generated when 255 packets have been sent. Stateless is advised for lossy networks and should be used for PPTP connections. The router will know if the client is using stateless or stateful mode since part of the MPPE header indicates whether the keys have been refreshed.

Microsoft also has their own compression algorithm, MPPC. MPPE is negotiated as an MPPC option. If you wish to do compression and you are using MPPE, you must use MPPC. In this case, you cannot use the Stac-LZS algorithm which is normally available for PPP links. If you chose not to use MPPC, the router code partially enables the function to allow MPPE to be negotiated. If you do chose to use MPPE and MPPC, they are decoded in one pass since these protocols share the same PPP header.


Table 20-41. Enable MSCHAP and MPPE

VPNRTR1 Layer-2-Tunneling Config>ENCAPSULATOR
Point-to-Point user configuration
VPNRTR1 PPP-L2T Config>ENABLE MSCHAP
Rechallenge Interval in seconds (0=NONE)  [0]?
Enabling MSCHAP
VPNRTR1 PPP-L2T Config>ENABLE MPPE
mandatory or optional [optional]?
stateful or stateless [stateful]? stateless      1
Enabling encryption
 
** Note ** : To view the MPPE configuration, please enter a 'list ccp'
             command since MPPE is negotiated within the CCP protocol.
VPNRTR1 PPP-L2T Config> 

  1. If the keys are stateless, the key changes every time a packet is sent, whereas with stateful the key is only generated when 255 packets have been sent. Stateless is advised for lossy networks and should be used for PPTP connections.

Add PPP User

For this example, two users are configured so that at least two simultaneous connections are tested. Each user has been assigned a static IP address. This is the simplest but also the least flexible and least scaleable way to assign IP addresses to PPP clients. Other methods of assigning IP addresses are to use an IP address pool or to use DHCP services.

First the user named sg245281 is added. The password entry will not appear on the screen.


Table 20-42. Add the PPP User

VPNRTR2 Config>ADD PPP-USER
Enter name:  []? sg245281
Password:
Enter again to verify:
Allow inbound access for user? (Yes, No): [Yes]
Will user be tunneled? (Yes, No): [No]
Is this a 'DIALs' user? (Yes, No): [Yes]
Type of route?  (hostroute, netroute): [hostroute]      
Number of days before account expires [0-1000] [0]?
Number of grace logins allowed after an expiration [0-100] [0]?
IP address: [0.0.0.0]? 192.168.141.38       1
Enter hostname: []?
Allow virtual connections? (Yes, No): [No]
Give user default time allotted ? (Yes, No): [Yes]       
Enable callback for user? (Yes, No): [No]
Will user be able to dial-out ? (Yes, No): [No]
Set ECP encryption key for this user? (Yes, No): [No]        
Disable user ? (Yes, No): [No]
 
     PPP user name: sg245281
   User IP address: 192.168.141.38
     Netroute Mask: 255.255.255.255
          Hostname:       Virtual Conn: disabled
      Time alotted: Box Default
     Callback type: disabled
          Dial-out: disabled
        Encryption: disabled
            Status: enabled
    Login Attempts: 0
    Login Failures: 0
  Lockout Attempts: 0
    Account Expiry:    Password Expiry: 
Is information correct? (Yes, No, Quit): [Yes]
 
User 'sg245281' has been added
VPNRTR2 Config>  

  1. Manually assigned IP address for PPTP client

Add another ppp user named salesman using the same parameters, and then list all ppp users.


Table 20-43. List PPP-USERS

VPNRTR2 Config>LIST PPP-USERS addr
List  (Name, Verb, User, Addr, VCon, Call, Time, Dial, Encr): [User] addr
 
PPP user name      User IP address     Netroute Mask       Hostname
-----------------  ------------------  ------------------  ---------------
salesman           192.168.141.39      255.255.255.255     <undefined>
sg245281           192.168.141.38      255.255.255.255           <undefined>
2 PPP records displayed.

Enable Arp Subnet Routing

Arp subnet routing is also referred to as proxy arp. If a host on the corporate network transmits a datagram to a PPTP host which has an IP address on the same subnet, the sender will not send the datagram to the default route, but will expect to see an entry in its own ARP cache. If there is no entry in the ARP cache, the sender will send ARP broadcasts directed at the destination IP. Since the destination IP address (the remote PPTP client) is not on the physical network, it will never respond. Arp subnet routing allows the local router to respond to the ARP broadcast on behalf of the remote client. The datagram then gets copied by the router and forwarded across the Internet.


Table 20-44. Enable Arp Subnet Routing

VPNRTR2 Config>PROTOCOL
Protocol name or number [IP]?
Internet protocol user configuration
VPNRTR1 IP config>ENABLE ARP-SUBNET-ROUTING
VPNRTR1 IP config>

Configure the DUN Client

To establish a PPTP connection using a Microsoft platform, you need two DUN sessions--one to the Internet--the ISP's router--and another to the Network Utility. You will first launch the PPP dial-up connection which establishes the Internet connection, and then launch the PPTP connection to create the tunnel to the Network Utility. The PPP interface of the IBM Network Utility must be accessible on the Internet.

Note:You must have DUN 1.2 or later installed. To see if you have Version 1.2 or later, open a Make a New Connection window in the DUN folder. Check for the presence of Microsoft VPN Adapter in the Select a Device drop down window.

To configure the Microsoft PPTP client, follow these steps:

When using the manually defined ppp-user, you must have a static IP address for each manually configured user.

You can define ppp-user/ip addr for each user and specify on the DUN to use sever assigned IP address. Otherwise, you can have one ppp-user and specify on the DUN to use the locally-assigned static IP address.

In the DUN client under the Properties/Server Type/TCP/IP settings, you can specify whether or not to use the default route on the remote network. What you specify here will depend on whether or not the PPTP client is accessing only resources on the remote subnet or whether it needs to have connectivity to other nets as well.

Monitoring

To verify that the configuration is correct, you can do the following ping tests. First, start the PPP link on the DUN client and ping the Internet interface of the Network Utility. The ping should be successful. Next try to ping the Intranet interface. The ping should fail. Now start the PPTP tunnel by launching the PPTP DUN definition. You should now be able to ping all hosts on the Intranet.

From the Talk 5 prompt, issue the NETWORK 6 command and then the LIST ALL command to see an extensive amount of information about the PPP connection. The most useful for troubleshooting are the statistics, user id, and IP address of the connection.

As shown in Table 20-45, use the CALL STATE command. Before we issued the CALL STATE command, we established sessions with our two ppp-users.


Table 20-45. Display Layer-2 Sessions

VPNRTR1 Layer-2-Tunneling Console> CALL STATE
CallID | Serial # | Net #  |    State    | Time Since Chg | PeerID | TunnelID
 55285 |        0 |      8 | Established |     0:37:10    |      0 |     6084
 38142 |        0 |      7 | Established |     0: 4:35    |      0 |    24721
VPNRTR1 Layer-2-Tunneling Console>                                       
     

For monitoring and troubleshooting, use the following commands:

In Table 20-46, the output from the TALK 2 command shows the two PPP nets with the CallID matching the information.

Table 20-46. Output of Talk 2 With Event Set for Display Subsystem L2

00:41:55   L2.024: PPTP PAYLOAD SEND 38 bytes, net=7, callid=38142
00:41:55   L2.041: SND PPTP:F=3081,L=54,Tid=0,Cid=0,NS=115,NR=117,O=0
00:41:55   L2.040: RCV PPTP:F=3081,L=38,Tid=24721,Cid=38142,NS=118,NR=115,O=0
00:41:55   L2.022: PPTP PAYLOAD RCVD 38 bytes, net 7, callid=38142
00:42:00   L2.024: PPTP PAYLOAD SEND 38 bytes, net=8, callid=55285
00:42:00   L2.041: SND PPTP:F=3081,L=54,Tid=0,Cid=0,NS=264,NR=274,O=0
00:42:00   L2.040: RCV PPTP:F=3081,L=38,Tid=6084,Cid=55285,NS=275,NR=264,O=0
00:42:00   L2.022: PPTP PAYLOAD RCVD 38 bytes, net 8, callid=55285
00:42:03   L2.084: PPTP Tunnel 6084/0 EVENT Rcv-ECHO,state=Established   
 

See Table 20-47 for a partial listing of the LIST ALL command.


Table 20-47. Partial Output of List All Command

VPNRTR1 +NETWORK 8
Point-to-Point Console
       VPNRTR1 PPP 8>LIST ALL
 
Interface Statistic        In                         Out
-------------------        --                         ---
Packets:                   81                         70
Octets:                    3316                       2581
..
.Remote Username:           sg245281
.
..IPCP Option                Local                      Remote
-----------                -----                      ------
IP Address                 0.0.0.0                    192.168.141.38
Compression Slots          None                       None


IBM Network Utility Initiated Voluntary PPTP Tunnel

This example, which is illustrated in Figure 20-13, is a PPTP scenario where the IBM router initiates a PPTP tunnel terminated by a Microsoft NT Remote Access Server (RAS) which is a PPTP peer. The NT server has two adapters--one with an IP address which is reachable via the IP cloud and one on the private network. The NT host does not have a dynamic routing protocol configured, but does have IP forwarding capability.

The scenario will provide connectivity for IP hosts in the branch to hosts on a single subnet within the corporate network. The NT RAS is located in what is sometimes referred to as the DMZ. It is accessible from the Internet and not protected by the corporate firewall. The RAS itself becomes a firewall for the corporate subnet which will be accessed across the Internet.

Figure 20-13. IBM Router Initiated PPTP Tunnel



View figure.

The lab network used for this example consists of one PPP link and three token-ring segments connected by two IBM 2210 routers and an NT Workstation. We have named the routers VPNRTR1 and VPNRTR2. The routers in the lab are connected with a 56-Kbps PPP link. In a real scenario, the link between the routers could be any private or public WAN.

Figure 20-14. IP Addressing of Lab Network



View figure.

A PPTP tunnel is established when a device on the 9.24.106.0 branch network has data to send to the corporate LAN IP network 192.168.141.64. The 192.168.141.64 network is not advertised into the IP cloud. Hosts on the corporate network are private addresses and the IP cloud is an ISP's network.

VPNRTR2, which represents the Branch Internet Router as illustrated in Figure 20-13, will be configured with a static route that specifies traffic destined for the 192.168.141.64 network and should be routed via the virtual interface. When data is received on the interface, the router will establish a PPTP tunnel. The router examines the L2Net and tunnel definition to locate the IP address of the PPTP peer, 192.168.141.34, which is illustrated as the NT Remote Access Server and VPN Endpoint. The router will establish a TCP connection to this address via the Internet. After the NT has accepted the PPTP connection, the branch router will negotiate the PPP parameters for its L2Net. The NT server will return an IP address from a pool of addresses configured for that PPTP interface. The IP address has to be in the same subnet as the corporate LAN interface. The L2Net must be configured to receive its IP address via IPCP.

Configure the Branch Router

Here are the basic steps to configure the branch router:

Enable PPTP on the router and add the virtual interface. When traffic is received on this interface, the router will initiate the PPTP tunnel.


Table 20-48. Add the Layer 2 Networks

VPNRTR2 *TALK 6
 
VPNRTR2 Config>FEATURE Layer-2-Tunneling
VPNRTR2 Layer-2-Tunneling Config>ENABLE PPTP
 
 Restart system for changes to take effect.
VPNRTR2 Layer-2-Tunneling Config>                              
Layer-2-Tunneling Config>add l2-nets
Additional L2 nets: [0]? 1
Add unnumbered IP addresses for each L2 net? [Yes]:
Adding device as interface 6         1 
Defaulting data-link protocol to PPP
Enable IPX on L2T interfaces?(Yes or [No]):
Enable transparent bridging on L2T interfaces?(Yes or
[No]):
Bridge configuration was not changed.
Restart router for changes to take affect.
Layer-2-Tunneling Config>exit
VPNRTR2 Config>

  1. Since we specified that the unnumbered IP address be added, 0.0.0.6 is assigned because the L2Net is interface 6. As shown in Table 20-49, you can use the list addr command at the IP Config> command prompt to verify the address. This address will be used as a parameter for the enable dynamic command as shown in Table 20-53.


Table 20-49. List Address to Verify IP Address of PPTP Interface

VPNRTR2 Config>PROTOCOL IP
VPNRTR2 IP config>LIST ADDRESSES
IP addresses for each interface:
   intf     0                                    IP disabled on this interface
   intf     1  192.168.141.17   255.255.255.240  Local wire broadcast, fill 1
   intf     2                                    IP disabled on this interface
   intf     3                                    IP disabled on this interface
   intf     4                                    IP disabled on this interface
   intf     5  9.24.106.8       255.255.255.0    Local wire broadcast, fill 1
   intf     6  0.0.0.6          0.0.0.0          Local wire broadcast, fill 1
                                                 DYNAMIC-ADDRESS Enabled
VPNRTR2 Config>EXIT

The next step is to define the PPTP tunnel endpoint. The add tunnel-profile command is used to define the tunnel. The name you are prompted for is the name of the remote PPTP. This is only for local identification purposes. It is not sent during the PPTP exchanges. You are asked for the tunnel-server endpoint address--this is in the address of the NT server which is reachable via the IP cloud.


Table 20-50. Add the Tunnel

VPNRTR2 Config>ADD TUNNEL-PROFILE
Enter name:  []? NT
Tunneling Protocol?  (PPTP, L2F, L2TP): [L2TP] PPTP
Tunnel-Server endpoint address: [0.0.0.0]? 192.168.141.34
 
       Tunnel name: NT
          TunnType: PPTP
          Endpoint: 192.168.141.34
 
Tunnel 'NT' has been added                           

The next step is to tie our virtual interface to the peer called NT. By default, all L2Nets are inbound from any device. This must be changed to outbound. Then you are prompted for the name of the remote device. This means that when traffic is routed to our virtual interface, interface 6, the router will establish a tunnel to a peer called "NT". It looks at the "NT" tunnel definition and discovers that it is a PPTP tunnel to 192.168.141.34.

The router will look in its routing table to determine how to get to that address, which in this example will be via 192.168.141.17. The router needs to be configured either via static routing or a dynamic routing protocol to know how to get to 192.168.141.34.


Table 20-51. Configure the Virtual Interface

VPNRTR2 Config>NETWORK 6
Session configuration
VPNRTR2 L2T config:   6>SET CONNECTION-DIRECTION OUTBOUND     1
Enter remote tunnel hostname:  []? NT
VPNRTR2 L2T config:   6> 

When an L2Net is changed from inbound to outbound, the PPP defaults can be configured on that L2Net. You can get to PPP configuration prompt by using the encapsulator command. In this example, the router is configured to send the name rtr-1 when prompted. This L2Net is meant to receive its IP address from the NT box. This will be sent during IPCP negotiations, and the router needs to be configured to ask the NT box for its IP address. This can be done using the set ipcp command and answering yes to request an IP address.


Table 20-52. Configure L2net To Send Name and Enable Interface To Receive IP Address Via IPCP

VPNRTR2 Config>NETWORK 6
Session configuration
VPNRTR2 L2T config:   6>ENCAPSULATOR
Point-to-Point user configuration
VPNRTR2 PPP 6 Config>SET NAME
Enter Local Name:  []? rtr-1
Password:rtr-1            1  
Enter password again:rtr-1
PPP Local Name = rtr-1        
 
 
VPNRTR2 PPP 6 Config>                  
VPNRTR2 PPP 6 Config>SET IPCP
IP COMPRESSION [no]:
Request an IP address [no]: yes      2
Interface remote IP address to offer if requested (0.0.0.0 for none) [0.0.0.0]?
        
VPNRTR2 PPP 6 Config>EXIT
VPNRTR2 L2T config:   6>EXIT
VPNRTR2 Config>      

  1. Password will not appear on screen. This is shown for illustration purposes only. This name and password must match the User and Password set up in the NT Remote Access Server under the User Manager function.

  2. Answer yes to have the NT send an IP address for L2Net.

In order for the router L2net to receive an IP address from the NT tunnel endpoint, we must enable the IP address for dynamic IP. This will allow the NT to send an address from a pre-configured address pool via IPCP.


Table 20-53. Configure IP on the L2Net

VPNRTR2 Config>PROTOCOL IP
Internet protocol user configuration
VPNRTR2 IP config>ENABLE DYNAMIC-ADDRESS
Interface address []? 0.0.0.6   1
VPNRTR2 IP config>  

  1. Enter the IP address that was assigned by the add l2-nets command as shown in Table 20-48.

A static route to the corporate subnet must be added since no dynamic routing protocols are used on the NT RAS host.


Table 20-54. Add a Static Route to the Private Network

VPNRTR2 IP config>ADD ROUTE
IP destination []? 192.168.141.64       1  
Address mask [255.255.255.0]? 255.255.255.240
Via gateway 1 at []? 0.0.0.6
Cost [1]?
Via gateway 2 at []?
VPNRTR2 IP config>EXIT
VPNRTR2 Config>         

  1. This is the address and subnet mask of the network where the NT RAS is located.

Since the router is going to appear as a single user on the corporate network, and the corporate network does not have any knowledge of the branch network, we need to use Network Address and Port Translation (NAPT). NAPT is an enhancement to NAT, which was originally shipped in the IBM routers in V3.1. It is enabled and configured from the NAT feature.


Table 20-55. Configure NAT

VPNRTR2 Config>FEATURE NAT
Network Address Translation (NAT) user configuration
VPNRTR2 NAT config>ENABLE NAT
 
Complete! NAT set to ENABLED.
VPNRTR2 NAT config>

The next step is to define which address we want the packets translated to. This is done using the reserve command. When it asks you if the address will be obtained via IPCP, the answer is yes. The interface is 6, the L2Net. The router then asks for a pool name. This is used as a reference when we define which addresses should be translated. The router also tells you that you need to configure IP packet filters to pass the packets to the NAT feature to be translated. This is the first time the router reminds you to configure IP packet filters.


Table 20-56. Define How the LAN Addresses Should Be Translated

VPNRTR2 NAT config>RESERVE
Dynamically allocate address via IPCP? [No]: yes
Network number to get dynamic address. [0]? 6
Reserve Pool name..................... []? dyn-nat
 
Complete! NAT Reserve Pool defined.
 
NOTE: The associated TRANSLATE RANGE for this RESERVE POOL
      must still be configured.
      It must have a pool name of: dyn-nat
 
NOTE: You must have a corresponding INBOUND IP Access Control rule
      applied to your designated NAT interface.
      The rule should include the following information:
          Type=IN (include + NAT)
          DESTINATION_Addr=0.0.0.0
          DESTINATION_Mask=0.0.0.0
 
VPNRTR2 NAT config>                                                      
       

The next step is to define which addresses should be translated. The command is saying, "Translate all packets with a source address in the 9.24.106.0 network to have an address in the dyn-nat pool." In the previous step, we defined that the dyn-nat pool is the address received by IPCP on interface 6. The router reminds you that you need to configure filters get the packets passed to NAT/NAPT for translation.


Table 20-57. Define Which LAN Addresses Should Be Translated

VPNRTR2 NAT config>TRANSLATE
Base (private) IP address to translate [0.0.0.0]? 9.24.106.0
Translate Range mask.................. [255.255.255.0]?
Associated Reserve Pool name.......... [dyn-nat]?
 
Complete! NAT Translate Range defined.
 
NOTE: The associated RESERVE POOL for this TRANSLATE RANGE has been found.
 
NOTE: You must have a corresponding OUTBOUND IP Access Control rule
      applied to your designated NAT interface.
      The rule should include the following information:
          Type=IN (include + NAT)
          SOURCE_Addr=9.24.106.0
          SOURCE_Mask=255.255.255.0
VPNRTR2 NAT config>EXIT
VPNRTR2 Config>    

We now need to create the IP packet filters. Table 20-58 shows that access control is enabled and then the filters attached to the L2Net are created and named out-6 and in-6.


Table 20-58. Add Packet Filters

VPNRTR2 Config>PROTOCOL IP
Internet protocol user configuration
VPNRTR2 IP config>SET ACCESS-CONTROL ON
VPNRTR2 IP config>                          
 
VPNRTR2 IP config>ADD PACKET-FILTER
Packet-filter name []? out-6
Filter incoming or outgoing traffic? [IN]? out
Which interface is this filter for [0]? 6
 
VPNRTR2 IP config>ADD PACKET-FILTER
Packet-filter name []? in-6
Filter incoming or outgoing traffic? [IN]?
Which interface is this filter for [0]? 6
VPNRTR2 IP config>   

Once the packet filters are created, use the update packet-filter command to define the filters. The purpose of the out-6 filter is to direct all packets that are from subnet 9.24.106.0 and destined for the Internet to the Network Address Translation function.


Table 20-59. Update the Outbound Packet Filter

VPNRTR2 IP config>UPDATE PACKET-FILTER
Packet-filter name []? out-6
VPNRTR2 Packet-filter 'out-6' Config>ADD ACCESS-CONTROL
Access Control type [E]? N      1
Internet source [0.0.0.0]? 9.24.106.0
Source mask [255.255.255.0]?
Internet destination [0.0.0.0]?
Destination mask [0.0.0.0]?
Starting protocol number ([0] for all protocols) [0]?
Starting DESTINATION port number ([0] for all ports) [0]?
Starting SOURCE port number ([0] for all ports) [0]?
Filter on ICMP Type ([-1] for all types) [-1]?
TOS/Precedence filter mask (00-FF - [0] for none) [0]?
TOS/Precedence modification mask (00-FF - [0] for none) [0]?
Enable logging? [No]:
VPNRTR2 Packet-filter 'out-6' Config>exit

  1. Type N specifies that the datagram should be sent to the NAT function.

The purpose of the in-6 filter is to direct all packets that are from the Internet and destined for subnet 9.24.106.0 to the Network Address Translation function.


Table 20-60. Update the Inbound Packet Filter

VPNRTR2 IP config>UPDATE PACKET-FILTER
Packet-filter name []? in-6
VPNRTR2 Packet-filter 'in-6' Config>ADD ACCESS-CONTROL
Access Control type [E]? N
Internet source [0.0.0.0]?
Source mask [0.0.0.0]?
Internet destination [0.0.0.0]?
Destination mask [0.0.0.0]?
Starting protocol number ([0] for all protocols) [0]?
Starting DESTINATION port number ([0] for all ports) [0]?
Starting SOURCE port number ([0] for all ports) [0]?
Filter on ICMP Type ([-1] for all types) [-1]?
TOS/Precedence filter mask (00-FF - [0] for none) [0]?
TOS/Precedence modification mask (00-FF - [0] for none) [0]?
Enable logging? [No]:
VPNRTR2 Packet-filter 'in-6' Config>exit
VPNRTR2 IP config>EXIT
VPNRTR2 Config>       

This completes the configuration of the branch router. As always, it is a good idea to save the configuration to either the configuration program or a TFTP server.

Configure NT Remote Access Server

To configure the NT Remote Access Server, follow these steps:

Add an NT user name rtr-1 and password of rtr-1. This must match the values configured in Table 20-52. Disable the "change password on first logon" option, and set the password to never age.

The NT box must be reachable via the IP cloud. To prevent malicious activity, you can enable PPTP filtering on the interface which is connected to the IP cloud. This means that the PPTP server only accepts PPTP packets from authenticated users. The user, (the remote router in our example), is defined using the "managing users" function within NT. All non-PPTP packets or PPTP traffic from non-authenticated users will be dropped.

Refer to the following Microsoft Web page for information on setting up the PPTP server: http://www.microsoft.com/NTServer/commserv/deployment/planguides/installing_pptp.asp

Monitoring/Troubleshooting the Configuration

Use ELS to dynamically monitor the PPTP tunnel. Configure ELS to display only subsystem L2 by issuing the NODISPLAY SUBSYSTEM ALL command followed by the DISPLAY SUBSYSTEM L2 ALL ALL command. Then issue the TALK 2 command as shown in Table 20-61.

Notice that there will be "keepalive" type traffic every 30 seconds even if there is no other traffic.


Table 20-61. ELS Output for L2 Subsystem

VPNRTR2 *TALK 2                                                          
     
40:19:49   L2.024: PPTP PAYLOAD SEND 38 bytes, net=6, callid=55253
40:19:49   L2.041: SND PPTP:F=3081,L=54,Tid=0,Cid=0,NS=121,NR=122,O=0
40:19:49   L2.040: RCV PPTP:F=3081,L=38,Tid=20169,Cid=55253,NS=123,NR=121,O=0
40:19:49   L2.022: PPTP PAYLOAD RCVD 38 bytes, net 6, callid=55253
40:19:59   L2.024: PPTP PAYLOAD SEND 38 bytes, net=6, callid=55253
40:19:59   L2.041: SND PPTP:F=3081,L=54,Tid=0,Cid=0,NS=122,NR=123,O=0
40:19:59   L2.040: RCV PPTP:F=3081,L=38,Tid=20169,Cid=55253,NS=124,NR=122,O=0
40:19:59   L2.022: PPTP PAYLOAD RCVD 38 bytes, net 6, callid=55253    

For this example, issuing the INTERFACE command at the Talk 5 Protocol IP prompt shows that the PPP/4 interface has been assigned an IP address on the subnet at the other end of the tunnel. Remember that we configured the NT RAS to assign IP addresses from a pool starting at 192.168.141.70 and ending at 192.168.141.73.

The NT RAS host took .70 for its tunnel endpoint address and assigned .71 to the Network Utility at the other tunnel endpoint.


Table 20-62. Display the Interface Information

VPNRTR2 *TALK 5
 
CGW Operator Console
VPNRTR2 + PROTOCOL IP
VPNRTR2 IP>INTERFACE
Interface    MTU   IP Address(es)   Mask(s)         Address-MTU
  PPP/0     2044   192.168.141.17   255.255.255.240 Unspecified
  TKR/0     4082   9.24.106.8       255.255.255.0   Unspecified
  PPP/4     1500   192.168.141.71   255.255.255.255 Unspecified
VPNRTR2 IP>EXIT

Use the call state and call statistics commands at the FEATURE Layer-2-Tunneling prompt as shown in Table 20-63 to verify tunnel activity.


Table 20-63. Display Tunnel Status and Statistics

VPNRTR2 +FEATURE Layer-2-Tunneling
Layer-2-Tunneling Information
VPNRTR2 Layer-2-Tunneling Console> CALL STATE
CallID | Serial # | Net #  |    State    | Time Since Chg | PeerID | TunnelID
 64985 |        0 |      6 | Established |     0:13:46    |      0 |    19704
 
VPNRTR2 Layer-2-Tunneling Console> CALL STATISTICS
CallID | Serial # | Tx Pkts | Tx Bytes | Rx Pkts | Rx Bytes |  RTT  |  ATO
 64985 |        0 |      95 |     3440 |      97 |     3415 |     0 |    
0
VPNRTR2 Layer-2-Tunneling Console> 

Note:At the >FEATURE Layer-2-Tunneling, you can use the following sequence of commands: =>T5, =>NET 6, =>LIST ALL.

IBM Network Utility Initiated Voluntary L2TP Tunnel

Follow the steps in "IBM Network Utility Initiated Voluntary PPTP Tunnel" with the following exceptions:


L2TP Tunnel Terminated at an IBM Network Utility LNS

The L2TP sample scenario will establish the connection between a remote dial-up user in the branch and Network Utility in the corporate using L2TP tunneling. Refer to the sample network diagram in Figure 20-15.

Connecting Dial-in Remote Users

Another application of VPN is to connect remote dial-in users to a central site over a public IP network, such as the Internet. The remote access server can be administrated by an ISP or by the user's company. This scenario demonstrates how to use the IBM Nways 2210/Network Utility as Remote LAN Access (RLAN) servers using the L2TP and Dial In Access to LANs (DIALs) features of the IBM Nways 2210/Network Utility.

Figure 20-15. L2TP Sample Configuration



View figure.

The IBM Nways 2210/Network Utility was used in this example, and the 2210 in the branch provides an RLAN access server for the remote dial-in users. An L2TP tunnel is set up between the branch router and the Network Utility in the data center so that the remote users can use the RLAN function in the Network Utility to access resources on the corporate intranet. Since the L2TP connection is IP-based, this traffic can also be sent through the IPSec tunnel if the IPSec is configured as well. With this alternative, L2TP is inside the IPSec tunnel.

Configuring the Branch Router For DIAL-in Access Server

The branch router 2210 was configured to allow a remote user to access the branch router via a V.34 dial-up modem and then extend the remote user's sessions to the corporate data center location over an IP network, such as the Internet, by using L2TP to tunnel the PPP session from the branch-office 2210 to the central-site IBM Network Utility.

Notes:

  1. The use of V.34 for the remote user access is demonstrated in this scenario. However, the 2210 supports V.34, ISDN BRI, and V.25bis. V.34 is supported via external modems connected to WAN ports or via the 4- or 8-port Dial Access Adapters that provide integrated V.34 modems.

  2. The IP network could be any IP-based network, such as the Internet or a public frame-relay network. In this scenario, the IP network is represented by a PPP serial WAN link.

The first step in the RLAN configuration is to add a V.34 interface. This is shown in Table 20-65.


Table 20-65. Adding a V.34 Address and Configuring the V.34 Interface

Branch *t 6
Gateway user configuration
Branch Config>add V34-ADDRESS
Assign address name [1-23] chars []? local
Assign network dial address [1-30 digits] []? 9193013461
Branch Config>set data v34
Interface Number [0]? 4
Branch Config>net 4
V.34 Data Link Configuration
Branch V.34 System Net Config 4>set local-address
Local network address name []? local

You must map the V.34 port to the V.34 address. You can also set the modem initialization string and speed, but this example uses the default parameters. You can check the parameters you configured with the 'list all'command as shown in Table 20-66.


Table 20-66. Listing the Configuration of the V.34 Port

Branch V.34 System Net Config   4>LIST all
 
         V.34 System Net Configuration:
 
Local Network Address Name    = local
Local Network Address         = 9193013461
 
Non-Responding addresses:
Retries                       = 1
Timeout                       = 0 seconds
 
Mode                          = Switched
 
Call timeouts:
Command Delay                 = 0 ms
Connect                       = 60 seconds
Disconnect                    = 2 seconds
 
Modem strings:
Initialization string         = 
 
Speed (bps)                   = 115200

The next step is to create the virtual interfaces used for dial-in connections. RLAN users use a special kind of dial circuit called a 'dial-in circuit'. In this scenario, one virtual interface is created for our single RLAN test user. However, you can create many more virtual interfaces. The practical limit is the number of async ports available on the router.

The dial-in interfaces are added from the talk 6 Config> prompt as shown in .


Table 20-67. Creating the Virtual Dial-in Interfaces

Branch Config>ADD DEVICE DIAL-IN
Enter the number of PPP Dial-in Circuit interfaces [1]?
Adding device as interface 6
Base net for this circuit [0]? 4
Enable as a Multilink PPP link? [no]
Disabled as a Multilink PPP link.
Defaulting Data-link protocol to PPP
Add more dial circuit interface(s)?(Yes or [No]):
Use "net " command to configure circuit parameters
 
Branch Config>LIST DEVICES
Ifc 0     Ethernet            CSR  81600, CSR2  80C00, vector 94
Ifc 1     WAN PPP             CSR  81620, CSR2  80D00, vector 93
Ifc 2     WAN PPP             CSR  81640, CSR2  80E00, vector 92
Ifc 3     WAN PPP             CSR 381620, CSR2 380D00, vector 125
Ifc 4     V.34 Base Net       CSR 381640, CSR2 380E00, vector 124
Ifc 5     Token Ring          CSR 6000000, vector 95
Ifc 6     PPP Dial-in Circuit
 
Branch Config>NETWORK 6
Circuit configuration
Branch Dial-in Circuit config:   6>LIST all
 
Base net                       = 4
Circuit priority               = 8

Note:Only PPP is supported over V.34. However, with DIALs, multiple protocols (IP, IPX, NetBIOS, 802.2, and LLC) can be supported over the PPP connection.
For each dial-in circuit, there are a number of parameters you can configure; however, these can generally be left at their default values.

In order to route IP through the V.34 interface, an IP address must be assigned to the interface. When the client dials in, the router automatically adds a static route to its routing table that says the next hop for the remote user is the IP address of the V.34 virtual interface.

The address must be on a different subnet from the destination LAN segment. You can use a real IP address or use an unnumbered IP. For the unnumbered IP, the format of the address is 0.0.0.n, where n is the interface number. Table 20-68 shows the dialog for this scenario. Interface 6 is the virtual interface for the test dial-in user.


Table 20-68. Configuring IP Addresses on the Virtual Interfaces

Branch IP config>LIST ADDRESSES
IP addresses for each interface:
   intf     0                               IP disabled on this interface
   intf     1  10.10.101.1 255.255.255.0    Local wire broadcast, fill 1
   intf     2                               IP disabled on this interface
   intf     3                               IP disabled on this interface
   intf     4                               IP disabled on this interface
   intf     5  10.10.1.1   255.255.255.0    Local wire broadcast, fill 1
   intf     6                               IP disabled on this interface
 
Branch IP config>add address
Which net is this address for [0]? 6
New address []? 0.0.0.6
Address mask [0.0.0.0]? 255.255.255.0

ARP-subnet routing must be enabled in order to allow the router to respond to ARPs when the next hop to the destination is over a different interface from the interface that is receiving the ARP request. This is the case with RLAN where the client IP address is on the same subnet as the router' s LAN interface, but the next hop (the V.34 interface) is on a different subnet. ARP-subnet routing is enabled as shown in Table 20-69.


Table 20-69. Enabling ARP-Subnet Routing

Branch IP config>ENABLE ARP-SUBNET-ROUTING
 
Branch IP config>LIST ADDRESSES
IP addresses for each interface:
   intf     0                               IP disabled on this interface
   intf     1  10.10.101.1 255.255.255.0    Local wire broadcast, fill 1
   intf     2                               IP disabled on this interface
   intf     3                               IP disabled on this interface
   intf     4                               IP disabled on this interface
   intf     5  10.10.1.1   255.255.255.0    Local wire broadcast, fill 1
   intf     6  0.0.0.6     255.255.255.0    Local wire broadcast, fill 1

This completes the configuration of the branch router for the basic DIALs function. The router is now restarted to activate the changes as shown in Table 20-70.


Table 20-70. Restarting the Router

Branch config>
Branch *res
Are you sure you want to restart the gateway? (Yes or [No]): yes

Configuring L2TP in the Branch Router

For this example, the dial-in user' s PPP connection can be extended by setting up an L2TP tunnel between the 2210 in the branch location and Network Utility in the data center. The end user should be able to use the RLAN function in the Network Utility to connect to resources in the data center.

L2TP is a mechanism that involves a tunnel between an L2TP Access Concentrator (LAC) and an L2TP Network Server (LNS). In this scenario, the 2210 in the branch will be configured as the LAC and the Network Utility will be configured as the LNS. The first step is to enable L2TP in the LAC. See xTable 20-71.


Table 20-71. Enabling L2TP in the LAC (Branch Router)

Branch Config> FEATURE Layer-2-Tunneling
Branch Layer-2-Tunneling Config>ENABLE L2TP
 
 Restart system for changes to take effect.
Branch Layer-2-Tunneling Config>EXIT

Next, a tunnel is created in the LAC. This is shown in Table 20-72.


Table 20-72. Creating L2TP Tunnel in the LAC (Branch Router)

Branch Config>ADD TUNNEL-PROFILE
Enter name:  []? lns.org
Tunneling Protocol?  (PPTP, L2F, L2TP): [L2TP]
Enter local hostname: []? lac.org
set shared secret? (Yes, No): [No] y
Shared secret for tunnel authentication:
Enter again to verify:
Passwords do not match.
...try again
Shared secret for tunnel authentication:
Enter again to verify:
Tunnel-Server endpoint address: [0.0.0.0]? 10.10.101.2
 
       Tunnel name: lns.org
          TunnType: L2TP
          Endpoint: 10.10.101.2
    Local Hostname: lac.org
 
Tunnel 'lns.org' has been added
 
Branch Config>LIST TUNNEL-PROFILES
TunnType  Endpoint         Tunnel name              Hostname
 
L2TP      10.10.101.2      lns.org                  lac.org
 
1 TUNNEL record displayed.

The following notes pertain to the LAC tunnel configuration:

Tunnel name
This name should match the hostname which is configured on the LNS (Network Utility).

Hostname
This is the hostname of the LAC.

Tunnel-Server endpoint
The IP address of the endpoint of the tunnel. This address has to be reachable from the LAC. It can be any interface address or an internal IP address on the Network Utility. Here the address of the interface which is the endpoint of the tunnel is used.

Shared secret
This parameter must be set if authentication is to be used on the tunnel and the value here must match the value configured in the LNS. L2TP tunnel authentication is enabled by default.

In order to activate these changes, the router must be restarted.

Configuring L2TP in the Network Utility

The 2216 has been configured as an L2TP Network Server (LNS). First, L2TP was enabled in the LNS. This is shown in Table 20-73.


Table 20-73. Enabling L2TP in the LNS

Corp Config>FEATURE Layer-2-Tunneling
Corp Layer-2-Tunneling Config>ENABLE L2TP
 
 Restart system for changes to take effect.
Corp Layer-2-Tunneling Config>EXIT

Then the tunnel is created in the LNS, pointing to the IP address and the name of the LAC. This is shown in Table 20-74.


Table 20-74. Creating L2TP Tunnel in the LNS (Corp Network Utility)

Corp Config>ADD TUNNEL-PROFILE
Enter name:  []? lac.org
Tunneling Protocol?  (PPTP, L2F, L2TP): [L2TP]
Enter local hostname: []? lns.org
set shared secret? (Yes, No): [No] Y
Shared secret for tunnel authentication:
Enter again to verify:
Tunnel-Server endpoint address: [0.0.0.0]? 10.10.101.1
 
       Tunnel name: lac.org
          TunnType: L2TP
          Endpoint: 10.10.101.1
    Local Hostname: lns.org
Tunnel 'lac.org' has been added
 
Corp Config>LIST TUNNEL-PROFILES
TunnType  Endpoint         Tunnel name            Hostname
 
L2TP      10.10.101.1      lac.org                lns.org
 
1 TUNNEL record displayed.

Note:If you are using shared secrets, the key must match the one configured in the LAC.

You can modify the PPP parameters for the L2TP tunnel. However, these parameters will be negotiated between the LAC and the LNS. The LAC acts as a proxy for the client PC in the PPP negotiation. An authentication protocol must be enabled for the L2TP tunnel. The default PPP parameters on the LNS were used for this scenario.

Next, the virtual interfaces over which the PPP connections will be terminated were added. These are analogous to the dial-in interface that was added in the branch router when it was configured for the DIALs function. However, in this case, the users are coming in through an L2TP tunnel instead of a V.34 interface.

In the LNS, the virtual interfaces are added from the L2TP feature configuration prompt. (In the LAC, they were added from the talk 6 main prompt.) This is shown in Table 20-75.


Table 20-75. Adding the Virtual Interface

Corp Config>FEATURE Layer-2-Tunneling
Corp Layer-2-Tunneling Config>ADD L2-NETS
Additional L2 nets:  [0]? 2
Add unnumbered IP addresses for each L2 net? [Yes]:
Adding device as interface 6
Defaulting Data-link protocol to PPP
Adding device as interface 7
Defaulting Data-link protocol to PPP
Enable IPX on L2T interfaces?(Yes or [No]):
Enable transparent bridging on L2T interfaces?(Yes or [No]):
Bridge configuration was not changed.
 
Restart router for changes to take affect.
Corp Layer-2-Tunneling Config>EXIT

In order to route IP through the L2 nets, an IP address must be assigned to the interface. When the client establishes the PPP connection through the L2TP tunnel, the router automatically adds a static route to its routing table that says that the next hop for the remote user is the IP address of the L2TP virtual interface. The address must be on a different subnet from the destination LAN segment.

The IP addresses for these interfaces are added when you create the interfaces. By default, they are unnumbered IP addresses. The format of the address is 0.0.0.n where n is the interface number (for example, for interface 7, the unnumbered IP address would be 0.0.0.7).

Note:If you need to change the default IP address associated with an L2TP net, you can do so via the IP config prompt in talk 6. However, unnumbered IP addressing works very well for RLAN because users connect to an L2TP net arbitrarily and the particular IP address associated with an L2TP net is not very critical.

ARP-subnet routing must be enabled in order to allow the router to respond to ARPs when the next hop to the destination is over a different interface from the interface that is receiving the ARP request. This is the case with RLAN where the client IP address is on the same subnet as the router' s LAN interface but the next hop (the L2TP virtual interface) is on a different subnet. ARP-subnet routing is enabled as shown in Table 20-76.


Table 20-76. Enabling ARP-Subnet Routing

Corp config>protocol ip
Corp IP config>ENABLE ARP-SUBNET-ROUTING
Corp IP config>EXIT

Next, the method for clients to obtain an IP address is defined. The DIALs server in the Network Utility needs to be configured as if the users were dialing in via ISDN or V.34 rather than tunneling in through an L2TP tunnel. DIALs users need to be assigned an IP address that is on the same subnet as the LAN interface to which they wish to connect. There are five methods available:

Client
The IP address is configured on the client.

User ID
The IP address is configured as part of the User ID definition on the router and sent to the client when it is authenticated. In this case, the IP address is associated with a specific user.

Interface
The IP address is configured in the interface and sent to the client. Here, the IP address is associated with the interface instead of the User ID.

DHCP Proxy
The IP address will be provided by a DHCP server and the router acts as a DHCP proxy for the client.

IP Pool
The IP pooling allows you to set up a block of IP addresses that are stored in a pool. When a client connects and requests an IP address, the router retrieves an address from the pool.

The methods for the clients to obtain an IP address are configured from the global DIALs menu. The client, user ID, interface and IP Pool methods are enabled. The router will attempt to use the first method that is enabled (in the order listed). You can also define primary and secondary domain name servers whose addresses are passed to the client during the IPCP negotiations. This is shown in Table 20-77.


Table 20-77. Listing Methods to Obtain IP Adresses

Corp Config>FEATURE DIALs
Dial-in Access to LANs global configuration
Corp Config>FEATURE DIALs
Dial-in Access to LANs global configuration
Corp DIALs config>LIST IP-ADDRESS-ASSIGNMENT
DIALs client IP address assignment:
Client     :  Enabled
UserID     :  Enabled
Interface  :  Enabled
Pool       :  Enabled
DHCP Proxy :  Disabled

In this scenario, the IP address for DIALs users from an IP pool is allocated. This is shown in Table 20-78.


Table 20-78. Adding IP Pool for DIALs Users

Corp Config>FEATURE DIALs
Dial-in Access to LANs global configuration
Corp DIALs config>ADD IP-POOL
Base address []? 10.10.10.11
Number of addresses [1]? 20
Corp DIALs config>LIST IP-POOLS
Configured IP address pools:
     Base Address      Last Address        Number
     ------------      ------------        ------
      10.10.10.11       10.10.10.30            20

At this point, the tunnel is configured in both the LNS and LAC, and the DIALs feature is configured in the LNS. Now, the PPP users that will tunnel to the LNS need to be configured. There are two ways to configure the PPP users to be tunneled:

Table 20-79 shows the definition of a Rhelm-based user on the Network Utility in the data center.


Table 20-79. Adding a Rhelm-Based L2TP User

Corp Config>ADD PPP-USER
Enter name:  []? sharif@lns.org
Password:
Enter again to verify:
Allow inbound access for user? (Yes, No): [Yes]
Will user be tunneled? (Yes, No): [No]
Is this a 'DIALs' user? (Yes, No): [Yes]
Type of route?  (hostroute, netroute): [hostroute]
Number of days before account expires [0-1000] [0]?
Number of grace logins allowed after an expiration [0-100] [0]?
IP address: [0.0.0.0]?
Enter hostname: []?
Allow virtual connections? (Yes, No): [No]
Give user default time allotted ? (Yes, No): [Yes]
Enable callback for user? (Yes, No): [No]
Will user be able to dial-out ? (Yes, No): [No]
Set ECP encryption key for this user? (Yes, No): [No]
Disable user ? (Yes, No): [No]
 
 
     PPP user name: sharif@lns.org
   User IP address: Interface Default
     Netroute Mask: 255.255.255.255
          Hostname:       Virtual Conn: disabled
      Time alotted: Box Default
     Callback type: disabled
          Dial-out: disabled
        Encryption: disabled
            Status: enabled
    Login Attempts: 0
    Login Failures: 0
  Lockout Attempts: 0
    Account Expiry:    Password Expiry: 
Is information correct? (Yes, No, Quit): [Yes]
 
User 'sharif@lns.org' has been added

For user-based tunneling, the ID is defined in both the LAC and LNS. Table 20-80 shows the definition of a user-based ID on the 2210 in the branch office. This user is set to be tunneled, and the router is notified to set up the L2TP tunnel when the user dials in. The destination IP address of the other tunnel endpoint is specified along with the hostname of the 2210 to use when creating the tunnel.


Table 20-80. Adding a User-Based Tunneling User in the 2210 (LAC)

Branch Config>ADD PPP-USER
Enter name:  []? shoma
Password:
Enter again to verify:
Allow inbound access for user? (Yes, No): [Yes]
Will user be tunneled? (Yes, No): [No] y
Tunneling Protocol?  (PPTP, L2F, L2TP): [L2TP]
Enter local hostname: []? lac.org
Tunnel-Server endpoint address: [0.0.0.0]? 10.10.101.2
 
     PPP user name: shoma
          TunnType: L2TP
          Endpoint: 10.10.101.2
    Local Hostname: lac.org
 
Is information correct? (Yes, No, Quit): [Yes] y
 
User 'shoma' has been added

Note:As soon as you specify that the user will be tunneled, the router knows to not ask you whether you want the DIALs function enabled for this user, what the IP address of the client should be, or any of the other parameters that you are prompted for when defining a DIALs user. This is because the DIALs function for this user is being provided by the Network Utility. The 2210 is merely providing a gateway service to the Network Utility.

Table 20-81 shows the definition of the same user-based ID on the 2216 in the data center. A normal DIALs user is defined here. This user is not a tunneled user since he is authenticated by the DIALs function by the time he is authenticated, the L2TP headers have all been stripped off and the packets are just normal PPP packets. This completes the configuration of the LNS.


Table 20-81. Adding a User-Based Tunneling User in the Network Utility (LNS)

Corp Config>ADD PPP-USER
Enter name:  []? shoma
Password:
Enter again to verify:
Allow inbound access for user? (Yes, No): [Yes]
Will user be tunneled? (Yes, No): [No]
Is this a 'DIALs' user? (Yes, No): [Yes]
Type of route?  (hostroute, netroute): [hostroute]
Number of days before account expires [0-1000] [0]?
Number of grace logins allowed after an expiration [0-100] [0]?
IP address: [0.0.0.0]?
Enter hostname: []?
Allow virtual connections? (Yes, No): [No]
Give user default time allotted ? (Yes, No): [Yes]
Enable callback for user? (Yes, No): [No]
Will user be able to dial-out ? (Yes, No): [No]
Set ECP encryption key for this user? (Yes, No): [No]
Disable user ? (Yes, No): [No]
 
 
     PPP user name: shoma
   User IP address: Interface Default
     Netroute Mask: 255.255.255.255
          Hostname:       Virtual Conn: disabled
      Time alotted: Box Default
     Callback type: disabled
          Dial-out: disabled
        Encryption: disabled
            Status: enabled
    Login Attempts: 0
    Login Failures: 0
  Lockout Attempts: 0
    Account Expiry:    Password Expiry: 
Is information correct? (Yes, No, Quit): [Yes] y
 
User 'shoma' has been added

The Network Utility must be restarted in order to activate these changes.

Monitoring L2TP

Now that the configuration is in place, the L2TP and RLAN configurations can be tested. The L2TP can be tested by dialing in from the remote PC, first with the Rhelm-based user ID and then with the User-based ID.

IP connectivity can be tested using PING from the PC client to the Network Utility. L2TP can be monitored from ELS using disp sub l2 all. A sample talk 2 session from the Network Utility LNS is shown in Table 20-82.


Table 20-82. Monitoring L2TP from ELS

Corp *TALK 2
00:04:27   L2.052: Tunnel 7042/0 has 15 seconds to establish itself
00:04:27   L2.050: EVENT Rx-SCCRQ,tid=7042/0,state=Idle
00:04:27   L2.048: RCV l2tpGetHostname, tid=7042/0
00:04:27   L2.058: Peer TunnelID = 48802
00:04:27   L2.060: Peer Hostname = lac.org
00:04:27   L2.047: Tunnel 7042/48802 State Changed Idle -> Authorizing
00:04:27   L2.074: Upcall from AAA subsystem, request SUCCESS
00:04:27   L2.050: EVENT Continue-SCCRQ,tid=7042/48802,state=Authorizing
00:04:27   L2.048: RCV SCCRQ, tid=7042/48802
00:04:27   L2.058: Peer TunnelID = 48802
00:04:27   L2.060: Peer Hostname = lac.org
00:04:27   L2.058: Peer Rcv Window = 4
00:04:27   L2.058: Peer Challenge = 0
00:04:27   L2.049: SEND SCCRP, tid=7042/48802
00:04:27   L2.035: Tunnel Auth Create Challenge, Tid=7042/48802, Len=16
00:04:27   L2.035: Tunnel Auth Create Challenge Response, Tid=7042/48802,
Len=16
00:04:27   L2.044: Allocating UDP port 1026 for tunnelid=7042
00:04:27   L2.041: SND L2TP:F=C802,L=121,Tid=48802,Cid=0,NS=0,NR=1,O=0
00:04:27   L2.047: Tunnel 7042/48802 State Changed Authorizing -> Wait-ctl-cnn
00:04:27   L2.040: RCV L2TP:F=C800,L=42,Tid=7042,Cid=0,NS=1,NR=1,O=0
00:04:27   L2.050: EVENT Rx-SCCCN,tid=7042/48802,state=Wait-ctl-cnn
00:04:27   L2.048: RCV SCCCN, tid=7042/48802
00:04:27   L2.057: Processing Challenge Response from Peer 4.7.3.3
00:04:27   L2.039: NOTE:SCCCN: Tunnel Authenticated
00:04:27   L2.047: Tunnel 7042/48802 State Changed Wait-ctl-cnn -> Established
00:04:27   L2.040: RCV L2TP:F=C800,L=48,Tid=7042,Cid=0,NS=2,NR=1,O=0
00:04:27   L2.007: LNS Allocated L2 net 8
00:04:27   L2.020: RCV Inbound-Call-Request, callid=25642, net=8
00:04:27   L2.021: SEND Inbound-Call-Reply, callid=25642, net=8
00:04:27   L2.041: SND L2TP:F=C802,L=44,Tid=48802,Cid=1156,NS=1,NR=3,O=0
00:04:27   L2.013: L2TP Call 25642 State Changed Idle -> Wait Connect
00:04:27   L2.030: LNS Forcing LCP option ACFC
00:04:27   L2.039: NOTE:Proxy-LCP Callback received
00:04:27   L2.009: Call Rcv Proxy-Auth-Type AVP,attr=29,val=4,len=8,flag=8008
00:04:27   L2.009: Call Rcv SEQUENCING_REQUIRED AVP,attr=39,val=0,len=6,flag=800
00:04:27   L2.013: L2TP Call 25642 State Changed Wait Connect -> Established
00:04:27   L2.015: Call Established-LNS,net=8,speed=115200,flags=4802
00:04:27   L2.017: Using Proxy-LCP AUTH on net 8
00:04:27   L2.021: SEND Set-Link-Info, callid=25642, net=8
00:04:27   L2.041: SND L2TP:F=C802,L=36,Tid=48802,Cid=1156,NS=2,NR=4,O=0
00:04:27   L2.040: RCV L2TP:F=C800,L=12,Tid=7042,Cid=0,NS=4,NR=3,O=0
00:04:32   L2.022: L2TP PAYLOAD RCVD 53 bytes, net 8, callid=25642
00:04:32   L2.024: L2TP PAYLOAD SEND 6 bytes, net=8, callid=25642
00:04:32   L2.041: SND L2TP:F=6902,L=18,Tid=48802,Cid=1156,NS=1,NR=2,O=0
00:04:32   L2.024: L2TP PAYLOAD SEND 8 bytes, net=8, callid=25642

The L2TP tunnel state can be checked from talk 5 as shown in Table 20-83.


Table 20-83. Monitoring L2TP from Talk 5

Branch *TALK 5
 
Branch +FEATURE Layer-2-Tunneling
Layer-2-Tunneling Information
Branch Layer-2-Tunneling Console> TUNNEL STATE
Tunnel ID | Type | Peer ID |    State    | Time Since Chg | # Calls | Flags
    35589 | L2TP |   58774 | Established |     0: 1:24    |       1 |  TL
 F
Branch Layer-2-Tunneling Console> TUNNEL STATISTICS
Tunnel ID | Type | Tx Pkts | Tx Bytes | Rx Pkts | Rx Bytes |  RTT  |  ATO
    35589 | L2TP |     108 |     7883 |     104 |     5388 |     5 |     5
 
 
Corp *TALK 5
Corp +FEATURE Layer-2-Tunneling
Layer-2-Tunneling Information
Corp Layer-2-Tunneling Console> TUNNEL STATE
Tunnel ID | Type | Peer ID |    State    | Time Since Chg | # Calls | Flags
    58774 | L2TP |   35589 | Established |     0: 2: 9    |       1 |  TL
 F
Corp Layer-2-Tunneling Console> TUNNEL STATISTICS
Tunnel ID | Type | Tx Pkts | Tx Bytes | Rx Pkts | Rx Bytes |  RTT  |  ATO
    58774 | L2TP |     108 |     5540 |     112 |     8035 |     5 |     5

This completes the configuration and monitoring of L2TP for Remote LAN Access using IBM 2210 and Network Utility.


[ Top of Page | Previous Page | Next Page | Table of Contents ]